Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2005-09-19 14:43:43
Size: 2813
Editor: ZoomQuiet
Comment:
Revision 13 as of 2005-12-10 04:23:29
Size: 406
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
'''
Pythonic Web 应用平台对比
'''

'''Pythonic Web 应用平台对比'''
Line 11: Line 10:
{{{发件人: [email protected] <[email protected]>
回复: [email protected]
收件人: "python.cn" <[email protected]>
日期: 2005-9-19 下午9:32
主题: TurboGears vs Django
}}}
这几天从limodu兄的blog中看到 TurboGears 这个框架,
看完演示教程后相当为之惊艳.
对比集中在'''高压力环境稳定性'''和'''sqlobject的发展结合'''上
Line 20: Line 12:
Django 跟 TurboGears 的出现提供了一个相当 pythonic
的解决方案 (python + HTML :D).
==== gasolin 曰 ====
[[Include(TGvsDjGasolin)]]
Line 23: Line 15:
==== limodou 曰 ====
[[Include(TGvsDjLimodou)]]
Line 24: Line 18:
不需要使用资料库查询语言或额外的资料库设计修改工具是一大特色.


TurboGears (Python) 是在 cherrypy +SQLObject等的基础之上整合相当成功的框架.


其计划的核心概念是不重复发明轮子, 而是把 python
中的各轮子组成有用的框架.
计划主要的工作是提供简化的安装, 设定, 操作,与文件.


之前 Ruby on rails 超热的时候似乎 python 社群有个 SUBWAY计划想达成类似的事情,
但一听就知道是想复制 ROR 的计划,并未提出相当的成果.

两者较不同的是 Django提供预设的资料库增删修改介面, 而 TGP似乎还没发展这块.

比起 Django 来说, TurboGears 更吸引我的是整合 AJAX 支援,

Django 跟 TurboGears 相比无论安装, 使用上都复杂许多,
而 Django 从头开发也意味着目前 python web开发社群要使用这框架也得多花费心力去学习.

TurboGears 教程中是由单一的 controller (标准的 python class) 呼叫 SQLObject来读出资料库中的资料,
再以字典形式传值到样板中当作动态语言的变数.

` 达成资料库(model)--controller--template (View) 的 MVC 架构`.

 由 controller 传出的格式如 `{data=content,pagename=page.pagename}`
一次收集网页样板将用到的 data 跟pagename 参数.

网页样板 template 接收用`[div] py:replace="data"]`
内容显示在这里 `[/div]`
实际显示时会将"内容显示在这里"这段替换成资料集"data"中的内容.

要在网页样板中调用这几个参数有两个方式.
第一种是可以在标签中加`py:replace="data"`, 来插入 data字典参数;

或是使用类似一般动态语言给参数的方式 `${data}` 插入data 字典参数.

注意第二种的格式还是跟 python调用字典的感觉很像.

间中用到的 HTML, ini 都算是基本的内容,
用起来没什么要另外学东西的负担.

Django (或 Ruby on rails)每加一页新的资料,
都要分别处理对应的 controller.
关连似乎不及 TurboGears 承袭 cherrypy 架构可使用单一
controller 的简单明了(不知有无说错?)
因此我认为相比之下 TurboGears 成功的机率更大些.
[[Include(PyWebFrameDiscuss)]]

Pythonic Web 应用平台对比

TableOfContents

1. TurboGears vs Django

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

1.1. gasolin 曰

Include(TGvsDjGasolin)

1.2. limodou 曰

Include(TGvsDjLimodou)

Include(PyWebFrameDiscuss)

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