没有合适的资源?快使用搜索试试~ 我知道了~
首页Django1.0以上版本的教材-DjangoBook2.0中文版.pdf
资源详情
资源评论
资源推荐

Django1.0
以上版本的教材
DjangoBook2.0
中文版
.pdf
By jack
2011-03-25

The Django Book
Table of contents
2.0, English -> Chinese
Django book 2.0
的中文翻译。
最近更新
-
贡献者
方便自己也方便大家,敬请积极参与翻译!
第一章:介紹
Django
完成度
100.00%
阅读
翻译
第二章
:
入门
完成度
100.
00%
阅读
翻译
第三章:
视图和
UR
L
配置
完成
度
100.00%
阅读
翻译
第四章:模版
完成度
100.
00%
阅读
翻译
第五章:模型
完成度
100.00%
阅读
翻译
第六章:
Admin
完成度
100.00%
阅读
翻译
第七章:表单
完成度
100.00%
阅读
翻译
第八章
:
高级视图和
URL
配置
完成度
10
0.00%
阅读
翻译
第九章:模版高级进阶
完成度
99
.
74%
阅读
翻译
第十章:
模型高级进阶
完成
度
100.00%
阅读
翻译
第十一章:通用视图
完成度
10
0.
00%
阅读
翻译
第十二章:
部署
Dja
ngo
完成度
100.00%
阅读
翻译
第十三章:
输出非
HTML
内容
完成度
100.
00%
阅读
翻译
第十四章:
会话、用户和注册
完成度
86.16%
阅读
翻译
第十五章:
缓存机制
完成度
100.00%
阅读
翻译
第十
六章:
集成的子框架
dj
ango.contrib
完成度
99.72%
阅读
翻译
第十七章:
中间件
完成度
95.
08%
阅读
翻译
第十八章:
集成已有的数据库和应用
完成度
100.00%
阅读
翻译
第十九章:
国际化
完成度
100.00%
阅读
翻译
第二十章:
安全
完成度
100.00%
阅读
翻译
本站由
VCC
使用
Django
搭建。
About | Comment help | Contact us | Errata | Buy the print version on Amazon.com
2010-5-5 The Django Book
http://djangobook.py3k.cn/2.0/ 1/2

The Django Book
目 录 | 下一章 | 翻译 |
About | Comment help | Contact us | Errata | Buy the print version on Amazon.com
第一章:介绍Django
本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以
最小的代价构建和维护高质量的Web应用。
从好的方面来看,Web 开发激动人心且富于创造性;从另一面来看,它却是份繁琐而令人生厌的工作。 通过
减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西。 为了达到这个目标,Django
提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问
题”提供了清晰明了的约定。 同时,Django 尝试留下一些方法,来让你根据需要在framework之外来开发。
本书的目的是将你培养成Django专家。 主要侧重于两方面: 第一,我们深度解释 Django 到底做了哪些工作
以及如何用她构建Web应用;第二,我们将会在适当的地方讨论更高级的概念,并解释如何 在自己的项目中高
效的使用这些工具。 通过阅读此书,你将学会快速开发功能强大网站的技巧,并且你的代码将会十分 清晰,易
于维护。 本书的代码清晰,易维护,通过学习,可以快速开发功能强大的网站。
框架是什麼?
Django 在新一代的
Web框架
中非常出色,为什么这么说呢?
为回答该问题,让我们考虑一下
不使用
框架设计 Python 网页应用程序的情形。 贯穿整本书,我们多次展示不
使用框架实现网站基本功能的方法,让读者认识到框架开发的方便。 (不使用框架,更多情况是没有合适的框
架可用。 最重要的是,理解实现的来龙去脉会使你成为一个优秀的web开发者。)
使用Python开发Web,最简单,原始和直接的办法是使用CGI标准,在1998年这种方式很流行。 现在从应用
角度解释它是如何工作: 首先做一个Python脚本,输出HTML代码,然后保存成.cgi扩展名的文件,通过浏览
器访问此文件。 就是这样。
如下示例,用Python CGI脚本显示数据库中最新出版的10本书: 不用关心语法细节;仅仅感觉一下基本实现
的方法:
#!/usr/bin/env python
import MySQLdb
print "Content‐Type: text/html\n"
print "<html><head><title>Books</title></head>"
print "<body>"
print "<h1>Books</h1>"
print "<ul>"
connection = MySQLdb.connect(user='me', passwd='letmein', db='my_db')
cursor = connection.cursor()
cursor.execute("SELECT name FROM books ORDER BY pub_date DESC LIMIT 10")
for row in cursor.fetchall():
print "<li>%s</li>" % row[0]
print "</ul>"
print "</body></html>"
4
3
2
2
1
2010-5-5 第一章:介紹Django
djangobook.py3k.cn/2.0/chapter01/ 1/6

connection.close()
首先,用户请求CGI,脚本代码打印Content-Type行,后面跟着换行。 再接下 来是一些HTML的起始标签,然
后连接数据库并执行一些查询操作,获取最新的十本书。 在遍历这些书的同时,生成一个书名的HTML列表
项。 最后,输出HTML的结束标签并且关闭数据库连接。
像这样的一次性的动态页面,从头写起的方法并非一定不好。 其中一点: 这些代码简单易懂,就算是一个初起
步的 开发者都能读明白这16行的Python的代码,而且这些代码从头到尾做了什么都能了解得一清二楚。 不需
要学习额外 的背景知识,没有额外的代码需要去了解。 同样,也易于部署这16行代码,只需要将它保存为一个
latestbooks.cgi
的 文件,上传到网络服务器上,通过浏览器访问即可。
尽管实现很简单,还是暴露了一些问题和不便的地方。 问你自己这几个问题:
应用中有多处需要连接数据库会怎样呢? 每个独立的CGI脚本,不应该重复写数据库连接的代码。 比较实
用的办法是写一个共享函数,可被多个代码调用。
一个开发人员
确实
需要去关注如何输出Content-Type以及完成所有操作后去关闭数据 库么? 此类问题
只会降低开发人员的工作效率,增加犯错误的几率。 那些初始化和释放 相关的工作应该交给一些通用的框
架来完成。
如果这样的代码被重用到一个复合的环境中会发生什么? 每个页面都分别对应独立的数据库和密码吗?
如果一个Web设计师,完全没有Python开发经验,但是又需要重新设计页面的话,又将 发生什么呢? 一
个字符写错了,可能导致整个应用崩溃。 理想的情况是,页面显示的逻辑与从数据库中读取书本记录分隔
开,这样 Web设计师的重新设计不会影响到之前的业务逻辑。
以上正是Web框架致力于解决的问题。 Web框架为应用程序提供了一套程序框架, 这样你可以专注于编写清
晰、易维护的代码,而无需从头做起。 简单来说,这就是Django所能做的。
MVC 设计模式
让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不
同。 下面就是通过使用Django来完成以上功能的例子: 首先,我们分成4个Python的文件,(
models.py
,
views.py
,
urls.py
) 和html模板文件 (
latest_books.html
)
# models.py (the database tables)
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=50)
pub_date = models.DateField()
# views.py (the business logic)
from django.shortcuts import render_to_response
from models import Book
def latest_books(request):
book_list = Book.objects.order_by('‐pub_date')[:10]
return render_to_response('latest_books.html', {'book_list': book_list})
1
1
2010-5-5 第一章:介紹Django
djangobook.py3k.cn/2.0/chapter01/ 2/6

# urls.py (the URL configuration)
from django.conf.urls.defaults import *
import views
urlpatterns = patterns('',
(r'^latest/$', views.latest_books),
)
# latest_books.html (the template)
<html><head><title>Books</title></head>
<body>
<h1>Books</h1>
<ul>
{% for book in book_list %}
<li>{{ book.name }}</li>
{% endfor %}
</ul>
</body></html>
然后,不用关心语法细节;只要用心感觉整体的设计。 这里只关注分割后的几个文件:
models.py
文件主要用一个 Python 类来描述数据表。 称为
模型(model)
。 运用这个类,你可以通过简
单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。
views.py文件包含了页面的业务逻辑。
latest_books()
函数叫做
视图
。
urls.py
指出了什么样的 URL 调用什么的视图。 在这个例子中
/latest/
URL 将会调用
latest_books()
这个函数。 换句话说,如果你的域名是example.com,任何人浏览网址http://example.com/latest/将会
调用
latest_books()
这个函数。
latest_books.html
是 html 模板,它描述了这个页面的设计是如何的。 使用带基本逻辑声明的模板语
言,如
{%
for
book
in
book_list
%}
结合起来,这些部分松散遵循的模式称为模型-视图-控制器(MVC)。 简单的说, MVC 是一种软件开发的方
法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来。 我们将
在第5章更深入地讨论MVC。
这种设计模式关键的优势在于各种组件都是
松散结合
的。这样,每个由 Django驱动 的Web应用都有着明确
的目的,并且可独立更改而不影响到其它的部分。 比如,开发者 更改一个应用程序中的 URL 而不用影响到这
个程序底层的实现。 设计师可以改变 HTML 页面 的样式而不用接触 Python 代码。 数据库管理员可以重新命
名数据表并且只需更改一个地方,无需从一大堆文件中进行查找和替换。
本书中,每个组件都有它自己的一个章节。 比如,第三章涵盖了视图,第四章是模板, 而第五章是模型。
Django 历史
在我们讨论代码之前我们需要先了解一下 Django 的历史。 从上面我们注意到:我们将向你展示如何不使用捷
径来完成工作,以便能更好的理解捷径的原理 同样,理解Django产生的背景,历史有助于理解Django的实现
方式。
1
2010-5-5 第一章:介紹Django
djangobook.py3k.cn/2.0/chapter01/ 3/6
剩余267页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论2