框架概述
Python的WEB开发框架汗牛充栋,比较知名的有:
Zope,早期的Python框架,著名的Plone内容管理系统(CMS)基于其开发,用户包括GE、美国海军、波士顿在线,和Java类似,Zope也有一套自成体系的服务器,数据库。
Quixote,也是一个早期的Python框架,豆瓣网(douban.com)基于其开发,它的起源是因为用Zope写的代码难以维护和调试。
Django,当下最流行的Python框架,玩聚网(ju690.com),好看簿(haokanbu.com)基于其开发,它能自动生成一套后台管理的界面,很适合用于快速完成小项目。
web.py,非常轻量级的一个Python框架,sohu邮箱基于其开发,它也常用于嵌入式设备。
Pylons,由各种Python库整合而成的框架,reddit.com 基于其开发,基于WSGI,可定制性好。
还有一些比较特别的框架,比如
Facebook(FriendFeed部门)发布的Tornado http://www.tornadoweb.org/
IBM(Second Life部门)发布的Mulib http://wiki.secondlife.com/wiki/Mulib
国人沈崴的Eurasia http://code.google.com/p/eurasia/
这三款框架共同的特点是支持大量并发的连接,写网页游戏,网页聊天室不妨考虑一下它们。
“Python的Web框架实在是太多了,我选哪一个好呢?”
和程序语言一样,框架之争也是Python社区的月经贴[注1]。
Limodou[注2]有句名言:“每个框架代表一种哲学,不同的哲学引来不同的用户”
每个人都有自己的倾向和偏好,有着自己的世界观和价值观。
加之,Python来实现Web框架实在是轻松上手,易如反掌。甚至有文章教你用3个小时,60行代码写出一个框架。
于是乎,春秋战国,百家争鸣。
任何东西,只要和哲学沾染上关系,就变得如“道可道, 非恒道”,“玄之又玄, 众妙之门”一般让人摸不着边际了。
世界上人虽多,但概括的说,无非是男人和女人 -- 好吧,凡事都有例外,不要跟我抬杠。
Web框架虽多,也无非是访问一个网址,显示一个网页。
当然这么说未免过于简单。
在细化一下,大多数Python小站的模式可以示意如下。
请求 Request
->
域名解析 DNS Resolve
->
HTTP服务器 HTTP Server
->
网址分发 Url Routing
->
视图 View
->
数据库 Database
->
模板渲染 Render Template
->
响应 Response
当然,这只是一个最简单和基础的示意图,有很多地方可以进一步的细化。
还记得这是当年做过的一条网易笔试题 -- 描述网页请求的流程。那时我给出的答案如今想起来很汗颜。
大多数Python的Web框架 负责地是从 网址分发 到 模板渲染 间的故事。
注释:
1. 月经贴 : 论坛黑话,像月经一样, 每个月都有,始终不让人们遗忘话题。
2. limodou : Python社区知名程序员
3. robaccia框架(robaccia 意大利语的垃圾) http://code.google.com/p/robaccia/