Size: 3478
Comment:
|
Size: 3636
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
##language:zh ##OBP项目图书reST通用文章模板 ###format rst |
## Do not edit this header. It is not part of the wiki code and will not be ## posted back to the wiki when you save. ## Base: http://wiki.woodpecker.org.cn/moin/ ## Page: ObpLovelyPython_2fPCS303 ## Secs: ## END OF HEADER |
Line 36: | Line 39: |
-- 清风 [[DateTime(2008-04-25T14:33:00Z)]] | -- 清风 [[DateTime(2008-04-25T14:33:00Z)]] |
status |
草稿 |
清风; 100% |
web2py
体会
- 发展比django晚,社区也小很多,功能相比之下还需要完善,比如ORM没有django完善,也没有什么signal之类的东西
- 某些约定可能更接近rails,比如每个controller的方法都自动对应一个view,而不是象django中是否存在view都是由用户来指定的
- model和controller是运行在一个特殊的环境下,因此它们不是一个完善的python模块,但是这样你也减少了许多的导入。由些带来的是一些exec的使用。我也在邮件列表中提出了问题:exec的效率会是如何?
- 多applicances设置,但是不象django那样app是分工协作的,而web2py每个applicance其实就是一个完整的应用,因此交互上目前还没有好的模式,Massimo(web2py的作者)是建议多app之间通过xmlrpc来交互,挺有意思的方式。不过象有些页面级的复用如何共享还不清楚。
- model的创建是自动化的。写完model程序,就可以自动创建表了。甚至某些字段的修改,增加等也可以自动完成。很方便。
- 号称是不需要安装,配置。提供web方式的开发环境,写程序,模板都可以在web上进行。app可以打包,上传。有些象zope了。
- url一般是采用/appliance/controller/function?argv=的形式,不象django是使用正则式。好象也支持特殊的route,不过不清楚怎么用。
- web server是自带的,使用cherrypy,因此我目前了解如果与apache配合的话需要使用反向代理。
- 因为是在一个环境下运行,因此象request, response之类的不需要在controller的函数中列出来,可以直接使用。
- 因此有一种更方便的开发方式就是,可以在模块前面做统一的处理,相当于模块级别的处理,可以对response进行操作。
- 相比之下比django要方便些。不过也象前面说的,效率?
- 模板简单,
- 支持extend,include,
另外会自动对html代码进行转义。
- 模板可以直接嵌入python代码,因此有些象mako,在运行时是先编译成python代码,然后再执行。
- 我挺喜欢,可以在模块中写python程序,而且比效简单。
response已经内置了许多功能,如xmlrpc([http://mdp.cti.depaul.edu/examples/default/examples 见例子48]),大文件下传支持 ([http://mdp.cti.depaul.edu/examples/default/examples 见例子47])简单的ajax支持等。象xmlrpc, ajax的东西django则需要自已去写了。
- model定义好后,可以直接生成SQLForm显示在web上,与newform很象。也提供Form的方式。
- 创建一个新的app不是一个空的东西,它其实是welcome.tar的一个拷贝,所以已经是一个可以工作的东西。并且在它的layout中已经支持简单的布局,菜单定义,提示信息等功能了。
- 如果在开发时出现错误,会自动生成一个ticket进行记录,挺有意思。
- 自带一个web编辑器,可以支持象python的自动语法高亮。
- 有一个试验性的web model designer,还没有正式投入使用,但是从演示已经可以设计model,关联外键,并可以生成web2py格式的model定义语句用在你的程序中。