Django for web2py开发人员

时间:2009-12-10 02:21:50

标签: django web2py

既然我已经对web2py比较熟悉了,我想给Django一个机会。

主要区别是什么?

开始考虑web2py知识的最有效方法是什么? (它必须有一些python应用程序框架知识,不是吗?)

修改

另外,如果您同时使用了两者,您能否提供您喜欢的意见和原因?

6 个答案:

答案 0 :(得分:26)

web2py非常受Django的启发,如果你知道一个,那么另一个很容易学习。我们添加了一些我们在Django中找不到的功能,包括:数据库迁移(自动更改表),错误票证,基于Web的IDE,适用于Google App Engine的数据库抽象层,基于角色的访问控制机制,可插入登录模块。

基本设计差异之一是Django应用程序是作为模块实现的,因此您需要在编辑它们时重新启动服务器。在web2py中,模型/视图/控制器不是模块,它们由框架执行(不导入),因此您无需在更改时重新启动服务器。

另一个区别是Django使用ORM,web2py使用DAL。 DAL略低于Django ORM,这使得它更接近SQL语法(例如允许左连接,任意聚合,嵌套选择及其组合),同时保持可移植性(我们支持10个不同的数据库)。 DAL还可以轻松地对模型进行动态元编程(例如在运行时根据存储在文件中的规范(如XML或CSV文件)创建模型)。

Django已经存在了很长时间,所以你会发现更多人熟练掌握并部署更多应用程序。

答案 1 :(得分:12)

Django = old

Web2py = new

Django做的任何事情,web2py做得更好。这是因为web2py是在django之后很长时间制作的,并且从Django的错误中吸取了教训,尽管它会犯下所有新的错误;)

主要区别,是什么让我留在web2py:

  1. Django拥有令人难以置信的文档...... web2py非常直观,不需要那么多...... HOWEVER!我发现Django文档适用于web2py,大部分。如果你花一天时间阅读django书(第1-7章),你就会明白这是怎么回事。所以在某种程度上,说Django更好地记录是asinine。另外,请注意任何框架都在谈论它的文档量作为一件好事...关注...文档是好的,不需要任何开始=更好。 Web2py的现有文档不仅满足了90%的用户需求。剩下的10%必须去看看框架库代码(不像Django那么多,而不是那么可怕)。此外,如果你花费超过30%的时间来完成图书馆代码,那么现在是时候摆脱框架并转向图书馆的集合(例如铁塔)。那时,这意味着你没有做任何Web框架旨在处理的事情......

  2. Django中的SQLForm是TextModel。使用TextModel(= SQLForm)创建表单后。祝你好运改变单个输入字段的CSS!在web2py中你只需要执行form.element(),在Django中没有这样的东西。你必须通过“widget()”,但要获得小部件,你必须首先浏览输入字段类型等...

  3. 此外,手动数据库迁移...更改架构?抱歉......必须下载并安装单独的迁移应用程序(南),或者必须在数据库控制台中手动执行。

  4. 最后,没有开箱即用的支持多个DB ...想想箍......

  5. 换句话说......与Django ...希望你喜欢跳跃和箍。

    如果你想真正从web2py中跳出来,试试Pylons ......认真......

    web2py的最大缺点是它的年龄和较小的代码库......这并不是不合理的,考虑到Django就像第一个实现RAILS风格的RAD思想的python web框架,就像web2py的两倍。 Web2py仍然处于其生命的早期采用者阶段...... Django正处于超越临界质量的部分......我预测,web2py将在未来两年内达到临界质量。

    <强>结论 花一天时间,阅读django书(第1-7章),阅读Pylons书(第1部分),然后思考为什么要使用框架开始。对我而言,尽可能快地完成所有工作,并且不用30%的时间查找文档。

    Web2py满足了我的上述需求。

答案 2 :(得分:10)

我在Django中完全创建了一个小型内部Web应用程序,之后完全在web2py中。这是真正理解差异及其对开发人员体验的影响的唯一方法。

我更喜欢web2py,因为环境中内置的便利性比Django提供的更多,但是web2py比Django要新得多,后见之明总是让新的实现变得更容易。由于web2py保证了向后兼容性,因此一些新工具使web2py在未来几年内过时是完全合理的。这是正常的事情方式。

无论如何,它们彼此非常接近,远远超过任何其他网络框架。例如,从基于Java的Web框架的角度来看,它们看起来几乎完全相同。

答案 3 :(得分:6)

了解一些python框架肯定有帮助。

最有效的入门方式是,比较两者的不同部门,即模型,视图,控制器,网址调度,模板,表格等。

Here是几个框架的一个很好的比较。我相信它会有所帮助。

答案 4 :(得分:4)

在安装web2py之前,我是一名Django程序员。我发现自己使用web2py更有效率,可能是因为合理的默认值(隐式导入,默认视图等)以及forum的强大支持。

答案 5 :(得分:-1)

简而言之:Django应该是Web2py。