83

这两个框架中哪一个更适合拥有 11 个月经验的开发人员。我决定为我的服务器端编码学习 python,并想知道其中哪些更适合我的技能水平的人。我刚刚花了几天时间玩 web2py 并且真的很喜欢它,我想知道 Django 是否提供了更多我错过的东西?

PS。更新:感谢大家的精彩投入,在购买了三本 django 书籍并浏览了 django 和 web2py 的一些小项目/教程后,我选择了 web2py。这是一个很棒的框架,它让 Web 开发对于新手来说真的很有趣。我会建议所有新手学习这个框架,因为它将成为未来的主流。Django 也是一个很棒的框架,但在我有限的经验看来,web2py 更好。

4

4 回答 4

109

(免责声明:我是 web2py 的项目负责人)

Django 比 web2py 长了大约 5 年,因此它有更多的用户和更多的应用程序可以炫耀。Django 有他们所谓的“admin”,它与 web2py 的“admin”不同,但更像 web2py 的“appadmin”。Django 的“admin”比 web2py 的“appadmin”更好,更可定制。Django 没有相当于 web2py 的“管理员”。(对不起,名称混淆)。

web2py 更紧凑,具有更多开箱即用的功能(更多支持的数据库、基于 Web 的 IDE、票务系统、无需补丁即可在 GAE 上运行、多种登录方法、基于角色的访问控制、基于 Web 的翻译界面、支持多个数据库连接、分布式事务等)。

对我来说,web2py 最重要的功能是自动迁移。Django 没有开箱即用地提供它们。

对于 web2py 来说,长期向后兼容是一个主要目标,以及安全性。Django 在安全性方面可与 web2py 相媲美(除了 web2py 在模板中具有 CSRF 预防和默认转义),但 Django 在 1.0 发布时破坏了向后兼容性。自 2007 年 10 月以来,web2py 从未这样做过。

对我来说,web2py 语法更自然:

 db(db.tablename.fieldname <= value).select() # web2py
 Tablename.objects.filter(fieldname__lt=value) # Django

我不知道 Django 中不存在的 web2py 的任何功能。我已经多次问过这个问题,因为如果有的话,我们想将它添加到 web2py,但我还没有得到满意的答案。

当然,有些事情我们都做,但有所不同。Django 遵循“显式优于隐式”。web2py 没有,而是遵循“一切都应该有默认行为”。我相信这会使 web2py 代码和配置更加紧凑。

无论如何,无论您选择什么,它们都是很好的可靠的 Web 框架,并且相似之处少于差异。Django 的开发人员是非常聪明的人。

web2py 社区非常友好。作为一个实验,尝试在 web2py google 组和 Django 组上提问。

于 2010-12-04T10:12:46.473 回答
23

Django 和 web2py 都是出色的“全栈”Web 框架,具有相似的特性和功能 - 作为初学者,您不会“错过”任何一个框架。

如果不知道更多关于你想用你的学习做什么,就很难回答你的问题。有人会说,学习框架而不是语言存在危险,因此最好先更深入地了解 Python 语言和轻量级框架(例如Flaskwekzeug)。

话虽如此,web2py 的初始学习曲线比 Django 低,因为它是专门设计为学习工具的。所以我会说你做了一个很好的选择。任何学习都不会浪费,如果您决定将来需要其他东西,那么您将使用 web2py 学到的好技术将不会浪费。

虽然 Django 有更多的学习资源,但由于它存在的时间更长,用户也更多,但学习 web2py 的速度也很快,因为这本书非常好,对用户组的问题几乎可以即时回复。

如果您正在寻找一份工作,那么 Django 的工作机会更多,所以这可能是一个因素。话虽如此, web2py社区最近建立了专家4解决方案,您可以在其中提升您的技能和可用性。

玩得开心!

于 2010-12-04T09:54:35.717 回答
10

我是 Web2py 和 DJango 的完全菜鸟,但我想要一个可以使用、学习和创建简单数据库前端的 Python 网络框架。我查看了 web2py,但找不到任何适合新手的教程如何构建一个简单的网络应用程序,(不仅仅是你好世界)。另一方面,DJango 确实编写了您的第一个 DJango 应用程序第 1 部分。这真的很好,通过编写一个简单的 Web 应用程序向新手介绍了如何设置和使用该框架。在 Web2Py 提供此功能之前,我将投票投给 DJango。

于 2011-10-29T19:00:26.800 回答
6

用很多话来说:(据我所知)

Web2py 绝对更简单,并使代码更简单、更干净。但是 Django 可以让您更好地了解正在发生的事情,并且还可以更有效地修改设计/流程。

Web2py 更关注“简单胜于复杂”,而 Django 更关注“显式胜于隐式”。Python 之禅的两个部分,所以很难说哪个框架更 Pythonic。

于 2011-10-27T08:52:10.780 回答