Chapter 1:Django概论
这本书介绍Django,它是Web开发框架,可以节约时间并且使Web开发成为乐趣。使用Django,你能平稳有序地构建和维护高质量Web应用。
最佳情况下,Web开发是令人兴奋的,创造性地活动;最糟糕时,它是重复的,令人沮丧的行为。Django让你集中精力在有趣的任务上——你的Web应用的关键——减少不断重复的痛苦。通过这样做,它提供了通用Web开发模式的高层抽象,高频率编程任务的快捷方式,怎样解决问题的明确习惯。与此同时,Django尝试置身事外,让你工作在需要的框架外围。
这本书的目标是使你成为Django专家。重点是双重的。首先,我们深入解释Django做什么以及怎么样使用它构建Web应用。然后,我们讨论更高级的概念,这儿回答了问题“我怎样在我的工程中有效的用这些工具?”。通过读这本书你将会了解快速强有力Web站点的技能,同时有干净和易于维护的代码。
什么是Web框架?
Django是新一代Web框架的基础成员——但是这个词精确的含义是什么?
回答这个问题时,让我们考虑不使用框架的,使用Python编写的Web应用设计。通过这本书,我们将会采用这种方法,向你展示不使用快捷方式完成工作的基本方法。希望你将会认识到为什么捷径是非常有帮助的。(了解不使用捷径怎样完成整个流程是非常有价值的,因为捷径不总是可用的。并且最重要的是,知道工作机制,这会使你成为更好的Web开发者)
最简单的、最直接的方法是从零开始使用CGI构建Python Web应用,大约1998年成为受欢迎的技术。它工作机制有更高层次的解释:仅创建Python脚本输出HTML,然后以".cgi"扩展名保存脚本到Web服务器,并且在Web浏览器中访问你的页面。就这样。
举个例子,Python CGI脚本从数据库中获取近期会出版的书。不用担心语法细节;仅对它正做地事情得到一些感受:
#!/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>"
connection.close()
首先,满足CGI的需求,这段代码打印“Content-Type”行,后面紧跟一个空行。它打印一些介绍性的HTML,连接到数据库并且运行查询取得最近十本书的名字。在取得的图书上循环,它生成标题的HTML列表。最后,打印关闭HTML的标识以及关闭数据库连接。
像这样的一页,从零写起的方法并不是坏的。这段代码是易于理解的——即使新手也能读懂这16行Python代码,并且理解它做的每件事情,从开始到结束。没有任何事情需要学习,没有另外的代码去阅读。它是简单的部署:仅仅保存这段代码在一个以“.cgi”结束文件,上传这个文件到Web服务器中,使用浏览器访问这个页面。
但是尽管它是简单的,这种方法有大量的问题。问你自己这些问题:
- 当你的应用多个部分需要连接数据库会发生什么呢?肯定地,数据库连接代码不需要在每个CGI脚本中复制代码。要做的是重构它到一个共享函数。
- 开发者真的需要打印“Content-Type”行并且记住关闭数据库连接?样板文件减少了程序员的成果并且增加了引入错误的机会。这些setup-和teardown-相关的代码将会是被一些通用的架构处理的。
- 当代码在多个环境中复用时会发生什么?每个数据库有不同的代码和密码怎么办?在这一点,一些特定环境的配置变得必要起来。
- 当没有使用Python编码的Web设计者希望重新设计页面会发生什么?一个错误的字符会破坏整个应用。理想状况下,页面的逻辑——从数据库中取得书名——将会从页面的HTML显式中分出来,因此设计者能在稍后不影响前者编辑。
这些问题是精确的——Web框架打算解决什么。Web框架为你的应用提供了编程架构,以至于你能重点写干净的,可维护的代码,而不需要重新造轮子,这就是Django所作的。
未完待续……
分享到:
相关推荐
The Django Book,中文版,快速了解Django框架。
- Configuration of services via the django Admin application - Fine control on which user's attributes are passed to which service - Possibility to rename/rewrite attributes per service - ...
Django14-1.4.14-1.sdl6.noarch.rpm Django14-1.4.14-1.sdl6.noarch.rpm
Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目...
Throughout the book, you'll take each topic and apply it to build a single example site, and all the while you'll learn the theory behind what you're architecting. Build a fully functional e-...
django-admin-bootstrap-master.zip
django-practice-book-master项目源代码
1、基于Django+Django -Rest-Framework+Python的在线考试系统后端(源码).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目...
django-vue-admin发布教程.docx
资源分类:Python库 所属语言:Python 资源全名:Django-3.2.11-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
The Django Book 2.0中文译本 The Django Book 2.0中文译本
The Django Book.pdf
The Django Book 2.0中文版-12152301,中文版,mobi格式
Python在线考试系统后端-大学毕业设计-基于Django+Django -Rest-Framework 适合大学生计算机专业的毕业设计,课程设计。 Python在线考试系统后端-大学毕业设计-基于Django+Django -Rest-Framework 适合大学生...
The Django Book(中文)版,是学习Django开发的好教材,也是Django开发人员手头必备的查阅书籍
Python在线考试系统-大学毕业设计-基于Django+Django -Rest-Framework
资源分类:Python库 所属语言:Python 资源全名:django-admin-volt-0.0.5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源来自pypi官网。 资源全名:Django-3.1.1-py3-none-any.whl
官方离线安装包,亲测可用
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习...