Django是新一代Web框架中非常出色的成员。那么Web框架这个术语的确切含义到底是什么呢?要回答这个问题,让我们来看看通过编写标准的CGI程序来开发Web应用,这在大约1998年的时候非常流行。编写CGIWeb应用时,你需要自己处理所有的操作,就像你想烤面包,但是都需要自己生火一样。下面是实例,一个简单的CGI脚本,用Python写的,读取数据库并显示最新发布的十本书。
djangobook实例
#!/usr/bin/python
importMySQLdb
print"Content-Type:text/html"
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("SELECTnameFROMbooksORDERBYpub_dateDESCLIMIT10")
forrowincursor.fetchall():
print"<li>%s</li>"%row[0]
print"</ul>"
print"</body></html>"
connection.close()
1代码十分简单。首先,根据CGI的要求输出一行Content-Type,接下来是一个空行。再接下来是一些HTML的起始标签,然后连接数据库并执行一些查询操作,获取最新的十本书。遍历这些书,同时生成一个HTML的无序序列。最后,输出HTML的结束标签并且关闭数据库连接。
djangobook怎么写
像这样的一次性的动态页面,从头写起的方法并非一定不好。其中一点:这些代码简单易懂,就算是一个初起步的开发者都能读明白这16行的Python代码,而且这些代码从头到尾做了什么都能了解得一清二楚。不需要学习额外的背景知识,没有额外的代码需要去了解。同样,也易于部署这16行代码,只需要将它保存为一个latestbooks.cgi的文件,上传到Web服务器上,通过浏览器访问即可。
但是,一个Web应用要远复杂于以上情况,这种方法很快会失效,而且你将会要面对很多问题:
当多个动态页面需要同时连接数据库时,将会发生什么?当然,连接数据库的代码不应该同时存在于各个独立的CGI脚本中,所以最踏实的做法是把这些代码重新组织到一个公共函数里面。
一个开发人员确实需要去关注如何输出Content-Type以及完成所有操作后去关闭数据库么?此类问题只会降低开发人员的工作效率,增加犯错误的几率。那些初始化和释放相关的工作应该交给一些通用的框架来完成。
总之,djangobook给大家简单的介绍了一些,希望大家多看看。