Differences between revisions 6 and 14 (spanning 8 versions)
Revision 6 as of 2005-11-14 04:21:37
Size: 2058
Editor: ZoomQuiet
Comment:
Revision 14 as of 2006-06-08 07:05:36
Size: 4054
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
'''
Pythonic Web 应用平台对比
'''

'''Pythonic Web 应用平台对比'''
Line 10: Line 9:
==== TurboGears vs Django ====
===== gasolin 曰 =====
== 综合对比 ==
'''[wiki:PyCNmail/2006-June/025580.html Re: 关于 Python 的 web 开发框架,应该选择哪个?]'''
 * limodou {{{
web framework大多数从功能上都大同小异。从功能上分:zope/plone算大型的,而django,
turbogears算是轻量级的。从学习曲线上分,zope/plone要长一些,而django,
turbogears相对要短一些。对于django,
turbogears来说,开发的理念有所不同,但功能是类似的。django所有东西都是自已开发的,象模板系统,url映射机制,ORM等。而turbogears则是许多相对成熟项目的集合,这一点与pylons也很象,如模板系统主要是kid,通过模板适配可以使用其它的模板(强调一下,django是松耦合的,许多组件也可以替换),web
server组件使用cherrypy,ORM使用SQLObject(还可以使用SQLAlchemy)等等。关于这两种集成的方式,不同的人有不同的看法。有人认为turbogears是好的,因为没有重新造轮子。但有些人象我认为集中式更易管理和控制。所以关键看你认同哪一种设计理念。

对于ajax也有许多不同的声音。ajax本身可以与后台无关,它主要是在前端通过javascript,
DOM来操纵前端数据,与后台交互。从这一点上,任何web
framework都可以算是支持ajax。如果说不支持,那是从后台能否自动生成相应的html,
javascript代码这一层来说的。turbogears嵌入了mochekit的js库的支持,可以通过python程序生成相应的js代码。django则是有人做过这样的工作,但要么不是成熟的东西,要么还没有成型。为什么会这样也与django的设计理念有关系。象turbogears,它的支持是针对不同的js库生成不同的包装,这样如果js库非常多,自然会有许多的包装,目前已经是这样的。而django在讨论是则不希望是这样,希望有一个中间层或无关层,但的确这一点很难。因此后来可能限定在了dojo,不过还没有相关的代码可以看到。只不过admin功能使用了dojo的一些东西。

还有pylons也很有特色。但对于我上人来说,我认为它太复杂了,不容易理解,所以也没有人研究过。目前国内对于django,
turbogears, pylons都有人研究,从人数上看是比例依次递减。对于zope/plone则有专门的czug.org,有许多人在学习和研究。

总之,不同的框架从基本功能上是大同小异,在功能是各有特色的,设计理念上也是各有差异。选择一个框架不仅看它的功能是否满足,可能还有许多的因素,如人气,成熟度,是否有现实的应用,性能,设计理念等等。应用从方面进行考查,而且用着顺心可能更重要。象karrigell作为初学入门,或更轻量级的选择也是不错。

--
I like python!
}}}
  * [wiki:PyCNmail/2006-June/025610.html ZoomQuiet]{{{
从学习成本来看就三种层次:
1:Zope 系列的高成本复杂性平台,维护需要深入学习成本,带来整体的稳定;
2:Django 等的中等复杂度平台,通过各种组合,使用一定的框架概念,中度学习后,可以获得丰富的功能,和一定数量级别上的稳定;
3:web.py 类的极低学习成本,可以直接进入开发和同步运营,一切功能都可以自行快速开发出来,但是系统整体稳定性依赖开发人员的成熟度

平台的选择主要看你的应用原则,和运维手段,是想依赖平台的设计,还是开发人员的人品?

总之学习成本和对系统整体细节的掌控程度是呈反比的。
}}}
=== TurboGears vs Django ===
对比集中在'''高压力环境稳定性'''和'''sqlobject的发展结合'''上

==== gasolin 曰 ====
Line 13: Line 46:
===== limodou 曰 =====
{{{回复: [email protected]
收件人: python-chinese列表 <[email protected]>
日期: 2005-11-14 上午10:24
主题: [python-chinese] Django vs. TurboGears
}}} [wiki:PyCNmail/2005-November/019026.html Django vs. TurboGears]
[[]]
看到列表中讨论 Django 和 TurboGears 的多了起来,我想就这两个web framework提出自已的一些看法,因为哪个都算不上精通,只是对某些方面多一些罢了,至今天除了按照django的教程做了一下,某它的就没做过。TurboGears方面也只是学过CherryPy而已,不过我从我个人的关注角度出来,希望对它们进行比较一下,大家可以补充,让比较更客观。另外因为我对django关注稍多一些,可能对于turbogears有些不正确的观点,请大家见谅。
Line 22: Line 47:
 * '''django 比 TurboGears 的优点''' ==== limodou 曰 ====
[[Include(TGvsDjLimodou)]]
Line 24: Line 50:
1. 自动的admin界面,有用户和组的管理,这些代码不用你写了
2. generic view,减少你写view的代码,模板当然还是要的
3. 模块及模板均支持i18n。
4. url采用正则表达示很有创意,这样可以规则你的url。另外通过正则表达式可以构造与方法调用无直接关系的链接形式,搜索引擎支持好。
5. django的模板还可以自已扩展,很有趣,可以增加新的tag和filter,而且写起来挺简单。
6. 有middleware,可以自已编写
7. 应用安装方便
8. 开发团队集中,目标一致

TurboGears 比 django 的优点

1. OMR模块采用sqlobject,比django中的要成熟
2. 支持ajax
3. 充分利用了setuptools工具
4. 宣传力度大,人数多,相对django活跃

共同的优点:

1. 文档做得都不错
2. 都象ror一样提供相应的命令行工具

看一看大家有什么补充。
[[Include(PyWebFrameDiscuss)]]

Pythonic Web 应用平台对比

TableOfContents

1. 综合对比

[wiki:PyCNmail/2006-June/025580.html Re: 关于 Python 的 web 开发框架,应该选择哪个?]

  • limodou

    web framework大多数从功能上都大同小异。从功能上分:zope/plone算大型的,而django,
    turbogears算是轻量级的。从学习曲线上分,zope/plone要长一些,而django,
    turbogears相对要短一些。对于django,
    turbogears来说,开发的理念有所不同,但功能是类似的。django所有东西都是自已开发的,象模板系统,url映射机制,ORM等。而turbogears则是许多相对成熟项目的集合,这一点与pylons也很象,如模板系统主要是kid,通过模板适配可以使用其它的模板(强调一下,django是松耦合的,许多组件也可以替换),web
    server组件使用cherrypy,ORM使用SQLObject(还可以使用SQLAlchemy)等等。关于这两种集成的方式,不同的人有不同的看法。有人认为turbogears是好的,因为没有重新造轮子。但有些人象我认为集中式更易管理和控制。所以关键看你认同哪一种设计理念。
    
    对于ajax也有许多不同的声音。ajax本身可以与后台无关,它主要是在前端通过javascript,
    DOM来操纵前端数据,与后台交互。从这一点上,任何web
    framework都可以算是支持ajax。如果说不支持,那是从后台能否自动生成相应的html,
    javascript代码这一层来说的。turbogears嵌入了mochekit的js库的支持,可以通过python程序生成相应的js代码。django则是有人做过这样的工作,但要么不是成熟的东西,要么还没有成型。为什么会这样也与django的设计理念有关系。象turbogears,它的支持是针对不同的js库生成不同的包装,这样如果js库非常多,自然会有许多的包装,目前已经是这样的。而django在讨论是则不希望是这样,希望有一个中间层或无关层,但的确这一点很难。因此后来可能限定在了dojo,不过还没有相关的代码可以看到。只不过admin功能使用了dojo的一些东西。
    
    还有pylons也很有特色。但对于我上人来说,我认为它太复杂了,不容易理解,所以也没有人研究过。目前国内对于django,
    turbogears, pylons都有人研究,从人数上看是比例依次递减。对于zope/plone则有专门的czug.org,有许多人在学习和研究。
    
    总之,不同的框架从基本功能上是大同小异,在功能是各有特色的,设计理念上也是各有差异。选择一个框架不仅看它的功能是否满足,可能还有许多的因素,如人气,成熟度,是否有现实的应用,性能,设计理念等等。应用从方面进行考查,而且用着顺心可能更重要。象karrigell作为初学入门,或更轻量级的选择也是不错。
    
    -- 
    I like python!
    • [wiki:PyCNmail/2006-June/025610.html ZoomQuiet]

      从学习成本来看就三种层次:
      1:Zope 系列的高成本复杂性平台,维护需要深入学习成本,带来整体的稳定;
      2:Django 等的中等复杂度平台,通过各种组合,使用一定的框架概念,中度学习后,可以获得丰富的功能,和一定数量级别上的稳定;
      3:web.py 类的极低学习成本,可以直接进入开发和同步运营,一切功能都可以自行快速开发出来,但是系统整体稳定性依赖开发人员的成熟度
      
      平台的选择主要看你的应用原则,和运维手段,是想依赖平台的设计,还是开发人员的人品?
      
      总之学习成本和对系统整体细节的掌控程度是呈反比的。

1.1. TurboGears vs Django

对比集中在高压力环境稳定性sqlobject的发展结合

1.1.1. gasolin 曰

Include(TGvsDjGasolin)

1.1.2. limodou 曰

Include(TGvsDjLimodou)

Include(PyWebFrameDiscuss)

PyWebFrameVs (last edited 2009-12-25 07:10:11 by localhost)