教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 外语考试 >

第一章:介绍Django

来源:网络收集 时间:2026-09-07
导读: Django Book 2010-10-19第一章:介紹Django About | Comment help | Contact us | Errata | Buy the print version on http://doc.guandang.net The Django Book 44目 录 | 下一章 | 翻译 |第一章:介绍Django本书所讲的是Django:一个可以使Web开发工作愉快

Django Book

2010-10-19第一章:介紹Django

About | Comment help | Contact us | Errata | Buy the print version on http://doc.guandang.net

The Django Book

44目 录 | 下一章 | 翻译 |第一章:介绍Django本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以

最小的代价构建和维护高质量的Web应用。

2从好的方面来看,Web 开发激动人心且富于创造性;从另一面来看,它却是份繁琐而令人生厌的工作。 通过

减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西。 为了达到这个目标,Django提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问题”提供了清晰明了的约定。 同时,Django 尝试留下一些方法,来让你根据需要在framework之外来开发。2本书的目的是将你培养成Django专家。 主要侧重于两方面: 第一,我们深度解释 Django 到底做了哪些工作

以及如何用她构建Web应用;第二,我们将会在适当的地方讨论更高级的概念,并解释如何 在自己的项目中高效的使用这些工具。 通过阅读此书,你将学会快速开发功能强大网站的技巧,并且你的代码将会十分 清晰,易于维护。 本书的代码清晰,易维护,通过学习,可以快速开发功能强大的网站。

框架是什麼?

1Django 在新一代的 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>"

Django Book

2010-10-19

connection.close()第一章:介紹Django

首先,用户请求CGI,脚本代码打印Content-Type行,后面跟着换行。 再接下 来是一些HTML的起始标签,然后连接数据库并执行一些查询操作,获取最新的十本书。 在遍历这些书的同时,生成一个书名的HTML列表项。 最后,输出HTML的结束标签并且关闭数据库连接。

像这样的一次性的动态页面,从头写起的方法并非一定不好。 其中一点: 这些代码简单易懂,就算是一个初起步的 开发者都能读明白这16行的Python的代码,而且这些代码从头到尾做了什么都能了解得一清二楚。 不需要学习额外 的背景知识,没有额外的代码需要去了解。 同样,也易于部署这16行代码,只需要将它保存为一个 latestbooks.cgi 的 文件,上传到网络服务器上,通过浏览器访问即可。

1尽管实现很简单,还是暴露了一些问题和不便的地方。 问你自己这几个问题:

应用中有多处需要连接数据库会怎样呢? 每个独立的CGI脚本,不应该重复写数据库连接的代码。 比较实用的办法是写一个共享函数,可被多个代码调用。

一个开发人员 确实 需要去关注如何输出Content-Type以及完成所有操作后去关闭数据 库么? 此类问题只会降低开发人员的工作效率,增加犯错误的几率。 那些初始化和释放 相关的工作应该交给一些通用的框架来完成。

如果这样的代码被重用到一个复合的环境中会发生什么? 每个页面都分别对应独立的数据库和密码吗?

1如果一个Web设计师,完全没有Python开发经验,但是又需要重新设计页面的话,又将 发生什么呢? 一

个字符写错了,可能导致整个应用崩溃。 理想的情况是,页面显示的逻辑与从数据库中读取书本记录分隔开,这样 Web设计师的重新设计不会影响到之前的业务逻辑。

以上正是Web框架致力于解决的问题。 Web框架为应用程序提供了一套程序框架, 这样你可以专注于编写清晰、易维护的代码,而无需从头做起。 简单来说,这就是Django所能做的。

MVC 设计模式

让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同。 下面就是通过使用Django来完成以上功能的例子: 首先,我们分成4个Python的文件,(models.py ,views.py , urls.py ) 和html模板文件 (latest_books.html )

1# 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})

Django Book

2010-10-19

# urls.py (the URL configuration)

from django.conf.urls.defaults import *

import views

urlpatterns = patterns('',

(r'^latest/$', http://doc.guandang.nettest_books),

)第一章:介紹Django

# latest_books.html (the template)

<html><head><title>Books</title></head>

<body>

<h1>Books</h1>

<ul>

{% for book in book_list %}

<li>{{ http://doc.guandang.net }}</li>

{% endfor %}

</ul>

</body></html>

然后,不用关心语法细节;只要用心感觉整体的设计。 这里只关注分割后的几个文件:

models.py 文件主要用一个 Python 类来描述数据表。 称为 模型(model) 。 运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。views.py文件包含了页面的业务逻辑。 latest_books()函数叫做视图。

2

urls.py 指出了什么样的 URL 调用什么的视图。 在这个例子中 /latest/ URL 将会调用 latest_books()这个函数。 换句话说,如果你的域名是http://doc.guandang.net,任 …… 此处隐藏:6203字,全部文档内容请下载后查看。喜欢就下载吧 ……

第一章:介绍Django.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1692974.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)