::-- ZoomQuiet [2005-07-16 07:18:42]
Contents
1. 介绍
1.1. 名字由来
Django 的名字是从一位比利时爵士音乐家来的。这是从 Django 的 FAQ 中看到的。这位音乐家名叫: Django Reinhardt ,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。在1930年到1950年初的这段日子里,他被认为是最好的吉它演奏家。根据百科全书的说明,django的发音为: zhane-go ('a'发长音)。从百科全书可以看到在他18岁的时候,他的手指在一场大火中受伤,但这并未影响他的演奏生涯。
1.2. 特性介绍
- 对象相关的映射
- 完全在Python中定义你的数据模型。你可以免费得到一个丰富的,动态访问数据库的API--但如果需要你仍然可以写SQL语句。
- URL 分发
- URL的设计漂亮,cruft-free,没有框架的特定限定。象你喜欢的一样灵活。
- 模版系统
使用DjanGo强大而可扩展的模板语言来分隔设计、内容和Python代码。
- Cache系统
- 可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。
- 自动化的管理界面
不需要你花大量的工作来创建人员管理和更新内容的接界。DjanGo可以自动完成。
- 支持多种数据库
- 国际化
- 完全支持多国语言,允许针对应用程序提供特定国家语言的翻译字符
2. 文档
2.1. 官方文档
安装(译文)
self:RemovingTheMagic (译文)
Django 文档中文版 (翻译中)
2.2. 原创文档
Debian/Testing平台下的运行环境配置(Wang Kebo)
Ubuntu 6.06 LTS平台下Django开发环境的搭建(zhwang)
2.3. 翻译文档
在Django 中的用户认证 -- 马踏飞燕
DjangoBook中文翻译( ing ) -- 肯定来过
2.4. 参考资料
3. 下载
正式包(最新版 0.96)下载
- 使用svn
svn co http://code.djangoproject.com/svn/django/trunk/ django_src
DjanGo 官方的 How to get Django
4. 学习记录
2005-07-12 limodou 发现 尚未发布的Python web framework -- Django
2005-07-15 http://www.djangoproject.com/ 正式发布
2005-07-16 张骏发表心得 django初体验
2005-07-16 limodou 发现的 Getting Started With Django
2005-07-20 Wang Kebo发表心得 在Debian/Testing上安装运行Django
4.1. 笔记汇编
|
07汇聚 |
5. Django Powered Sites
6. 反馈
大家的学习体验?
AlbertLee: 从 Rails on Ruby 那里体会了这种MVC的 Web开发的方式,看到 DjanGo 说是 "Rails on Python" ,所以很有兴趣。现在的疑虑就是能否应用到实际的企业级产品中?
今天用了一下午加一晚上时间把那四篇tut全看了一遍,并实际跟着作了一遍,有些感觉了。但是最后第四篇教程,最后讲到的那个 Generic Views,说得很莫名其妙,是作者写到最后写烦了还是我看到最后看烦了? 总之是没有弄明白。
Fat: tut4中关于Generic Views确实说得不清楚。用了一下感觉还是不错的。其实就是让用户无需自己写view而实现一些rad方面的功能,django自称(crud,create update delete)。很适合快速开发。不过目前的版本在实现上好像还是有点小问题。至少我在使用中发现类似日期字段的filter在generic views下不太好用(创建好用,update时显示用问题)。
6.1. running under Ubuntu
如何在Ubuntu 中安装运行Dango -- zhwang 分享
6.2. with Twisted
RunWithTwisted -- cenyongh
6.3. vcc.django的第一次亲密接触
vcc <[email protected]> hide details 12:11 am (47 minutes ago) reply-to [email protected] to [email protected] date Jan 17, 2007 12:11 AM subject [python-chinese] django的第一次亲密接触
昨天要给一个客户做一个小东西,厌倦了PHP,就决定用django试试看,虽然对django也就仅限于知道,大致浏览了一下它的网站;)反正是个小东西,费不了多少时间,估计就几个小时就搞定,结果昨晚搞了大半夜加上今天搞了半天,才算搞定。第一次嘛,怎么样也得纪念一些,放着备忘啊。
1、django不是为了省事的,什么都要你定义,但是定义好了就挺省事,先苦后甜啊
2、我用的Mysql不是utf-8编码,所以一上来就在settings定义DEFAULT_CHARSET = 'gb2312', 这我是用utf-8搜索django代码发现有DEFAULT_CHARSET,试一下,果然搞定。
3、Mysql的datetime允许0000-00-00, 这个django搞不定,这个痛苦,被迫改啊。
4、django的allow_empty缺省是False,这个没注意(想当然认为不会有这种问题),结果给客户时是没测试数据的,当场over,这下丢脸了;-)
5、@login_required的用法,在limodou的step by step里认为不好用,没有默认的login的模版。其实很好用,只是要把django带的template(django\contrib\admin\templates) copy到你的template里,改一下就好了。我想django认为普通客户的登陆和管理员的登陆是不一样的,所以不提供缺省的模版。(limodou真是一个好同志,我就是拿着他的step干的,赞一个!)
6、没有多数据库支持,其他数据只好直接用MysqlDb了,没办法享用django的ORM的好处。
7、直接用数据库的查询的结果怎么传给模版?可以用dictfetchall:
from django.db import connection from django.db.backends import util cursor = connection.cursor() cursor.execute("""SELECT * FROM ....""", [....]) data = util.dictfetchall(cursor) return render_to_response('template.html', {'data':data})
8、template的不能有表达式,我相当然的用if a=b,结果不行,要用ifequal。想想django默认的allow_empty都是False,要大家再努力记多一些规矩也就不奇怪了;-)
9、django的出错后的信息不完全,有很多都没有有效的信息,例如没有行号(我不需要django的core的行号,拜托给我的破代码的行号好不好),有的只能靠猜,这个真的很麻烦。可能不关django的事,python的问题?
10、django的cursor的execute的参数如果用%d就会出错,可是我传过去的确实是int啊,后来我搜了一把代码,似乎没看到用%d,都是%s,改成%s就OK了,这大概不会又是我的想当然了吧?
感觉django确实不是给初学者玩的,想想url要定义regexp就知道了,但是痛苦了一番还是感觉django不错,写起来比PHP舒服,熟悉了以后效率明显比PHP高,看来我以后可以换用django了。
6.4. ps.Django电影
- 嗬嗬嗬!无意间看到关于 Django Reinhardt 的电影!
在豆瓣关于这个电影的评论和简介http://www.douban.com/subject/1293748/ -- 清风
- 我爱小咪咪
发行时间:1999年 电影导演:伍迪·艾伦 Woody Allen 电影演员:伍迪·艾伦 Woody Allen 乌玛·瑟曼 Uma Thurman 西恩·潘 Sean Penn 约翰·沃特斯 John Waters