MVC设计模式
让我们用一个例子快速进入正题,阐明先前的方法和Web框架之间的区别。你也许会使用Django写先前的CGI代码。怎么做呢?要做的第一件事情是我们将它划分为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})
# 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指定了哪个view是被给定的URL调用。在这种情况下,URL /latest/ 将会被latest_books()函数处理。换句话说,如果你的域名是example.com,任何访问URL http://example.com/latest/ 将调用 latest_books() 函数
- 文件latest_books.html是HTML模板,描述了页面的设计。它使用模板语言使用基本的逻辑语句——如:{% for book in book_list %}
我们采用的这种采取松散耦合模式叫做Model-View-Controller(MVC)。简单的说,MVC是开发软件的一种方法,因此定义和访问数据(the model)的代码是同请求——路由逻辑(the controller),依次的它又从用户接口(the view)分离开。(我们将会在第5章摄入讨论MVC)
这种方法的关键优势是组件是松散耦合的。强有力的Django Web应用的每个不同的部分都有关键的目标并且能是被独立变化的,不会影响其它的部分。例如开发者能为应用的给定部分改变URL而不会影响下层的实现。设计者能改变页面的HTML而不需要调整渲染它的Python代码。数据库管理员能重命名数据库表以及指定单个位置的变化,而不需要在很多文件中搜索和替换。
在这本书中,MVC的每个组件都有自己的章节。第三章讲述view,四章讲述template,第五章讲述models。
Diango的历史
在我们研究更多代码之前,我们应该花一些时间解释Django的历史。我们展示给你不使用捷径怎样做这些事情,以至于你能更充分地理解捷径。相似的,理解Django为什么会被创建,因为历史知识将会放入Django上下文。
如果你已经构建Web应用一会了,你大概在先前描述的CGI例子熟悉了这些问题。经典的Web开发者会做以下一些事情:
1、从零开始写Web应用
2、从零开始写另外的Web应用
3、认识到应用从第一步共享很多通用应用
4、重构代码以至于应用1共享应用2的代码
5、重复2-4步
6、认识你已经发明的框架
这个过程精确地描述了Django是怎样创建的!
在Lawrence/Kansas/USA的Web开发组编写的,源于真实应用。诞生于2003年秋天的。……
How to Read This Book
……
要求编程知识这本书的读者应该理解过程和面向对象编程的基础:控制结构(如if,while,for),数据结构,变量,类和对象。
正如你期盼的,Web开发的经历是非常有帮助的,但是理解这本书是不要求的。通过这本书,我们尝试为缺乏这种经历的读者在Web开发中提升最佳实践。
要求的Python知识
核心的,在Python编程语言中Django是简单的库集合。使用Django开发站点,你使用这些库写代码。了解Django,然后,了解怎样在Python中编写程序,理解Django库怎样工作是重要的事情。
如果你在Python中有编程经历,你应该没有深入研究的麻烦。总体上说,Django代码不会实现许多的“magic”(例如,实现的程序花样是难于解释或者理解的)。对于你,学习Django就是了解Django的习惯和API。
如果你没有在Python方面的编程经历,你会感到一种享受。它是易于学习的,并且具有使用的乐趣!尽管这本书没有包含完全的Python指导,但是它强调了Python特征和功能。我们仍然推荐你阅读官方文档 http://docs.python.org/tut/。我们也推荐Mark Pilgrim的免费书籍《Dive Into Python》,http://www.diveintopython.org/ 并且被Apress出版。
要求的Python版本
这本书契合版本Django 1.1
Django开发者在主要的版本序列中维护向后兼容。这个承诺意味着,如果你为Django1.1写了一个应用,它将会在1.2,1.3,1.9和其它以“1”开始的另外版本中工作。
一旦Django到2.0,你的应用也许需要被重写——但是2.0版本是一条很长的路。它花了三年多的时间发布1.0版本。
寻求帮助
Django的最大的好处是它的用户社区。对于任意方面的Django帮助——从安装,应用设计,数据库设计,部署——在线自由地问问题。
- djagngo-user邮件列表有许多用户提问和回答问题。自由参加 http://www.djangoproject.com/r/django-users
- Django IRC通道是Django用户实时聊天和帮助的渠道。
下章导读
下一章,我们将会开始Django,讲述了它的安装和初始化。
未完待续……
分享到:
相关推荐
在学习《The Django Book》的过程中,你可以掌握以下几个核心知识点: 1. **Django基础**:了解Django的基本架构,包括模型(Models)、视图(Views)、模板(Templates)和URL调度器(URLconf),这四者构成了...
Django是一个强大的Python Web开发框架,它采用了模型-...通过学习《The Django Book 2.0中文版》,开发者可以深入理解Django的每一个角落,从基本的Web应用构建到高级的框架使用,最终成为一名熟练的Django开发者。
文件解压缩后,用户将获得一个名为"The_Django_Book2[1].0-20100505_djangobook.py3k.cn.pdf"的PDF文档,便于阅读和学习。 Django是一个高效、强大且灵活的开源Web框架,它遵循“干(DRY)”原则(Don't Repeat ...
《Django Book 2.0中文译本》是关于Django框架的一本全面教程,它为初学者提供了深入了解和学习Python Web开发的宝贵资源。Django是一个基于Python的开源Web框架,它遵循“DRY”(Don't Repeat Yourself)原则,旨在...
《The Django Book》是一本关于Python Web框架Django的指南书籍,涵盖从基础到高级的各种知识点,适合希望系统学习Django的开发人员。Django是一个开源的、基于MVC(模型-视图-控制器)设计模式的Web应用框架,它...
2. **模型(Models)**:学习定义数据模型,如何创建数据库表,以及如何进行数据迁移,理解Django的ORM系统。 3. **视图(Views)**:理解视图的职责,如何处理HTTP请求,返回HTTP响应,以及如何编写视图函数或类...
《Django Book 2.0中文译本》是Python开发者学习Django框架的重要参考资料,它提供了全面且深入的教程,帮助读者理解并掌握这个强大的Web开发框架。Django以其高效、安全和可扩展性闻名,是许多大型网站和应用程序...
在本压缩包中包含的"Djangobook-1-0(完整版).pdf"文件,正是这本书的完整PDF版本,为读者提供了全面学习Django的资源。 Django是Python编程语言中的一款高级Web框架,它遵循“DRY”(Don't Repeat Yourself)原则,...
《Django Book 1.0中文版》是针对Python Web开发框架Django的一份详尽教程,它提供了中英文双语对照,便于学习者深入理解Django的核心概念和功能。Django作为一款强大的、高性能的开源框架,因其高效、安全且易于...
以上只是《The Django Book中文版》中部分关键知识点的概述,书中还涵盖了错误处理、测试、国际化、缓存、邮件发送等多个方面,为读者提供了全面的Django学习资源。通过深入阅读和实践,开发者可以熟练掌握这个强大...
根据提供的文件信息,以下是对《The Django Book(第一版 中文高清版)》的内容知识点的详细解读: 首先,《The Django Book(第一版 中文高清版)》是一本全面介绍Python Web框架Django的入门书籍。这本书详细讲解了...
The Django Book 2.0提供了全面的教程,涵盖了以下主题: 1. 安装与设置:如何在本地环境安装Django,配置数据库,以及创建项目和应用。 2. 模型(Models):定义数据结构,包括字段类型、数据验证,以及与数据库...
2. "The Django Book 2.0中文译本.pdf" - 这是该书的主要内容,很可能包含了Django 2.0的全部教程,包括基本概念、安装指南、模型、视图、模板、表单处理、认证和授权、中间件、URL路由等核心知识点。 3. "LinuxIDC....
- **在线资源**:官方网站(http://djangobook.py3k.cn/2.0/)提供了丰富的文档和教程,有助于进一步学习和实践。 - **社区支持**:活跃的社区和论坛可以解答学习过程中遇到的问题,加快学习进度。 通过以上内容,...
### 关于《The Django Book》的关键知识点 #### 第一章:Django简介 - **什么是Web框架**:简而言之,Web框架是一套为开发者提供快速构建网站功能的基础架构。它通常包括一系列预设的功能和服务,如路由管理、...