python web 框架可真多!几乎所有比较python web框架和ruby web框架的时候都会提到这个现象。
最近几天我也基本上是钻在这一堆框架(和一堆评论比较的文章)里面度过的。
现在开学了,轻松了一天,似乎可以回过头来好好看看这个问题了。
首先我想产生众多框架的关键原因在于:开发一个新框架实在太简单了,而开发一个满足所有人需要和喜好的框架却是不可能的!
每个框架都有它的特色,都有它存在的理由。而当你稍微走近看的时候你会发现这些框架的结构是如此的相似,毕竟都逃不过mvc的框框。也有仁兄把这些个结构归纳为: url dispatcher,controller ( 就是django的view ) ,model,template.
不光结构相似,使用到的组件也都是那么几个 python 模块,基本上都是可以轻松替换的。所以为什么说这些个才开发了几个月的web框架就已经如此的成熟,因为这些模块早已久经考验。
框架的差别基本只存在于细节,只存在于底层实现,只存在于对快速开发与灵活性之间的权衡。
常用的组件都有哪些呢?不妨收集一下 :)
1、url dispatcher:
django 的基于正则表达式的
cherrypy 的基于 object publisher 的
routes 学 ror 的
还有 paste 的简单的 urlmap
2、templating:
模板系统比较多,详细列表请看http://wiki.python.org/moin/Templating
我所知的几个比较常用的是:
django template system (简单易用,适合设计人员使用)
myghty (功能强大,基于组件)
kid (基于xml,对xml文档的生成相当自然)
3、orm:
sqlalchemy
sqlobject
django orm
另外python中还有webpy这类的"微型"框架,不熟悉,也就不敢多加评论了。
而对于 ror vs python web frameworks 的争论,我感觉这种争论更多的是集中在ruby or python的争论上,框架本身区别并不大。而这两种语言区别其实也不大,争论更多集中在一些 features 的比较和美学观念上差异。而ruby 和 python 最大的观念的差别就是:
ruby:there is more than one way to do it.
python:there should be one obvious way to do it.
了。
不管怎么说百家争鸣是个好事,web框架如此,ruby和python的存在也是如此。具体选择取决于你自己了。
------------------------------------
web框架详细列表:
http://wiki.python.org/moin/WebFrameworks
http://wiki.woodpecker.org.cn/moin/PyWebFrameList
所有研究python web框架的朋友不得不看(至少我是这么认为)的一个东西:
http://wsgi.org/
http://www.python.org/dev/peps/pep-0333/
http://wiki.woodpecker.org.cn/moin/WSGI
最后还有两篇好文想与大家共欣赏:
People Who Drive Silver or Blue Cars Should NOT Read This
Pronouncement
python web 框架可真多
最新推荐文章于 2026-01-07 13:36:22 发布
本文探讨了Python Web框架的多样性及其背后的原因,分析了各种框架的共同特点与差异,并列举了一些常用的组件,如URL分发器、模板系统及ORM等。
9万+

被折叠的 条评论
为什么被折叠?



