web2pyTM Enterprise Web Framework

::-- ZoomQuiet [2008-03-16 06:31:41]

CPUG联盟::

CPUG::门户plone

BPUG

SPUG

ZPUG

SpreadPython Python宣传

1. web2py

名似质非的高可用web框架

1.1. vs Others

1.1.1. Limodou 4 django

limodou <limodou@gmail.com>
reply-to        python-cn@googlegroups.com,
to      python-cn@googlegroups.com,
date    Sun, Mar 16, 2008 at 1:08 PM
subject [CPyUG:43563] Re: webpy 很好玩...
mailing list    <python-cn.googlegroups.com> Filter messages from this mailing list
mailed-by       googlegroups.com
signed-by       googlegroups.com

2008/3/16 小龙 <freefis@gmail.com>: > 那你们怎么看待web2py?

  1. 发展比django晚,社区也小很多,功能相比之下还需要完善,比如ORM没有django完善,也没有什么signal之类的东西
  2. 某些约定可能更接近rails,比如每个controller的方法都自动对应一个view,而不是象django中是否存在view都是由用户来指定的
  3. model和controller是运行在一个特殊的环境下,因此它们不是一个完善的python模块,但是这样你也减少了许多的导入。由些带来的是一些exec的使用。我也在邮件列表中提出了问题:exec的效率会是如何?
  4. 多applicances设置,但是不象django那样app是分工协作的,而web2py每个applicance其实就是一个完整的应用,因此交互上目前还没有好的模式,Massimo(web2py的作者)是建议多app之间通过xmlrpc来交互,挺有意思的方式。不过象有些页面级的复用如何共享还不清楚。
  5. model的创建是自动化的。写完model程序,就可以自动创建表了。甚至某些字段的修改,增加等也可以自动完成。很方便。
  6. 号称是不需要安装,配置。提供web方式的开发环境,写程序,模板都可以在web上进行。app可以打包,上传。有些象zope了。
  7. url一般是采用/appliance/controller/function?argv=的形式,不象django是使用正则式。好象也支持特殊的route,不过不清楚怎么用。
  8. web server是自带的,使用cherrypy,因此我目前了解如果与apache配合的话需要使用反向代理。
  9. 因为是在一个环境下运行,因此象request, response之类的不需要在controller的函数中列出来,可以直接使用。
    • 因此有一种更方便的开发方式就是,可以在模块前面做统一的处理,相当于模块级别的处理,可以对response进行操作。
    • 相比之下比django要方便些。不过也象前面说的,效率?
  10. 模板简单,
    • 支持extend,include,
    • 另外=var会自动对html代码进行转义。

    • 模板可以直接嵌入python代码,因此有些象mako,在运行时是先编译成python代码,然后再执行。
      • 我挺喜欢,可以在模块中写python程序,而且比效简单。
  11. response已经内置了许多功能,如xmlrpc(见例子48),大文件下传支持 (见例子47)简单的ajax支持等。象xmlrpc, ajax的东西django则需要自已去写了。

  12. model定义好后,可以直接生成SQLForm显示在web上,与newform很象。也提供Form的方式。
  13. 创建一个新的app不是一个空的东西,它其实是welcome.tar的一个拷贝,所以已经是一个可以工作的东西。并且在它的layout中已经支持简单的布局,菜单定义,提示信息等功能了。
  14. 如果在开发时出现错误,会自动生成一个ticket进行记录,挺有意思。
  15. 自带一个web编辑器,可以支持象python的自动语法高亮。
  16. 有一个试验性的web model designer,还没有正式投入使用,但是从演示已经可以设计model,关联外键,并可以生成web2py格式的model定义语句用在你的程序中。
  17. 以上是部分个人在学习中的体会,但是还有许多东西还在学习中。这里只是相比django有一些我认为的确是方便的地方。所以对于django我希望不要过于死板,只顾把自已做强,更多的是要让用户体验到,框架不仅功能强,更要让用户使用起来方便,简单。django在设计上的确有许多独到之处,但我还是希望它可以在某些地方更简化一些,更灵活,更自由一些。
  18. web2py主要还是一个个人项目,所以发展上还有许多的路要走。与django相比还有许多的不足。不过从Massimo的个人表现来说,的确让人敬佩。而我也还是web2py的一个初学者。

1.2. 反馈

Web2Py (last edited 2009-12-25 07:18:47 by localhost)