python web框架 Django 初探

简介

   web框架的产生大多都有一个背景。Django的诞生也不列例外,它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。通过减少重复的代码,Django 使你能够专注于 web 应用上有 趣的关键性的东西。为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问题”提供了清晰明了的约定。同时,Django 尝试留下一些方法,来让你根据需要在framework之外来开发

    首先我们要明确什么是web框架。要回答这个问题我们先看一下如果没有框架,我们自己去编写服务器端的程序应该怎么写。没有通用的方法,那么干什么都得我们自己来。下面这段代码中我们链接数据库发布了10本新书。类似这样的代码我们是可以自己写,但是当你的页面有几千个的时候,情况就不这么简单了。业务逻辑会很复杂,出错的概率也会大大增加。

#!/usr/bin/python  
import MySQLdb  
print "Content-Type: text/html" print 
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() 



    这种模式还有一点致命的缺陷:前台后台相互关联。这样做的后果就是一个美工先要更改网页布局得从一大段的代码中找到相应的部分然后去修改,效率很低。最理想的情况就是前后的耦合性不是很强,工作相互独立。

    以上就是Django解决的问题,也是所有web框架致力解决的问题。有了他们你可以编写清晰的可以维护的代码,并且处理复杂的业务逻辑。

 

MVC模式

     什么是MVC模式?M代表模型,在Django里面就是一个model.py文件。用来描述数据表。运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。简单的来说就是负责数据管理的部分。V代表视图,即view.py。里面存放的是你的页面布局,也就是你的页面设计的html代码。最后是C,代表控制,即urls.py文件。他负责什么样的url调用什么样的视图。这些合在一起就是MVC模式:由Model负责产生数据,由View负责人机显示,由Urls负责控制访问逻辑。

python web框架 Django 初探

 

 

 

     这种设计模式关键的优势在于各种组件都是 松散结合 的。这样,每个由 Django驱动 的Web应用都有着明确的目的,并且可独立更改而不影响到其它的部分。比如,开发者 更改一个应用程序中的 URL 而不用影响到这个程序底层的实现。设计师可以改变 HTML 页面 的样式而不用接触 Python 代码。数据库管理员可以重新命名数据表并且只需更改一个地方,无需从一大堆文件中进行查找和替换。

 

MTV模式

     事实上Django使用的是MTV模式,和MVC模式差不了多少。Django处理一般http请求的过程如下:

【1】web服务器收到一个http请求

【2】Django把服务器传过来的请求转换成一个请求对象

【3】Django在URLconf里面查找正确的视图函数

【4】调用视图函数,参数为请求对象的URL参数

【5】视图创建一个并返回一个响应对象

【6】Django把响应对象传递给web服务器

【7】web服务器将响应发送给客户端

 

 python web框架 Django 初探

python web框架 Django 初探,布布扣,bubuko.com

python web框架 Django 初探

上一篇:Struts2+Spring传参


下一篇:python 偏函数应用