python web 框架可真多

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

你可能感兴趣的:(框架,Web,django,python,Ruby,web框架)