Django,Turbo Gears,Web2Py,哪个更好?

时间:2010-09-05 12:11:30

标签: python django frameworks web2py turbogears

我想到了一个项目,最终值得投入编程。

在阅读了很多东西之后,在这里和其他地方,我开始将Python作为我现在学习的东西,通过C#或java。最让我信服的是Paul Graham在编程语言和Lisp上的短途旅行,虽然Arc处于试验阶段,这对我现在无法帮助我做这个Web应用程序。

至于网络应用程序,我已经检查了Django,Turbo Gears和Py2Web。尽管花了很多时间阅读,我仍然不知道应该使用哪一个。

1)Django 当然拥有最好的在线形象,并且有一个很好的现场教程,他们肯定知道如何展示他们的东西。

2)Web2Py 以无需安装的方式吸引我,并声称让Django看起来很复杂。但是当你在他们的网站上挖掘时,你很快就能找到多年来没有更新的内容,但外部链接已经破碎了...那个网站上的鬼魂会让一个不熟悉项目的人担心它是否会变得扁平化。 / p>

3)Turbo Gears ......我猜它也是模块化的。写这篇文章的人喜欢它...我找不到任何可能使它比Django更特别的特定内容。

我还没有决定使用IDE,虽然我在这里阅读了Intellisense代码完成帖的所有答案。对于像我这样的新手来说,显示额外的代码片段也会很酷,但我想我应该首先选择我的网页框架,然后选择一个能够很好地适应它的编辑器。

由于可能没有任何框架在所有方面都是最好的,我将在我想要构建的应用程序上给出一些细节:

它将使用MySQL,它需要注册/登录,并且将对来自输入和SQL查询的数据进行大量简单的数学运算。我已经在Excel中完成了一个功能原型,所以我确切地知道我想要构建什么,我希望这将帮助我克服我的无知。我会成为一个小应用程序,没什么大不了的。

我不希望在构建它时看到任何HTML ;-)

PS:感谢运行Stackoverflow的人们,也在恰当的时刻找到了这个地方!

7 个答案:

答案 0 :(得分:19)

您应该查看web2py在线文档(http://web2py.com/book)。它带有基于角色的访问控制(最常用的访问控制机制),并且非常精细,您可以为特定记录的特定操作授予访问权限。它带有基于Web的IDE,但您也可以使用WingIDEEclipsePyCharm。它带有辅助系统,允许您在不使用HTML的情况下生成HTML。以下是需要用户注册/登录/发布消息的完整应用程序示例:

db.define_table('message',Field('body'),Field('author',db.auth_user))
@auth.requires_login()
def index():
    db.message.author.default=auth.user.id
    db.message.author.writable=False
    return dict(form=crud.create(db.message),
                messages=db(db.message.id>0).select())

从更改列表http://code.google.com/p/web2py/source/list

中可以看到,web2py项目非常活跃

如果您有与web2py相关的问题,我强烈建议您加入web2py邮件列表: http://groups.google.com/group/web2py/topics

我们非常积极,您的问题将很快得到解答。

答案 1 :(得分:6)

我不得不说,由于不是特别熟练的开发人员,我能够使用web2py创建的速度让我大吃一惊。很大程度上归功于令人惊叹的社区以及Massimo使框架易于访问的核心价值。

当我开始时,我在Python中编写了0行代码 从来没有听说过web2py

我已经认真地对待了大约一个月并且已经取得了进展(以我惯常的方式)从提出没有人能够回答的问题(因为他们没有任何意义)一次编码几个小时没有采摘写一本书或问一个问题。

我真的很感动。

答案 2 :(得分:4)

我对Django有过积极的体验。

  • registration
  • 的内置身份验证和易于使用的扩展程序
  • 非常好的文档
  • 您可能主要在base.html中编写HTML模板,然后只使用模板继承(注意:您至少需要编写一些HTML)
  • 与Turbogears相比,Django更“开箱即用”
  • 我对web2py没有任何经验,但从我的印象来看,它试图做一点“开箱即用”

答案 3 :(得分:2)

如果您决定使用Django,请确保使用其通用视图。它们将使您免于编写大量代码,包括Python和HTML。

另外,除非你有一个非常具体的原因要使用MySQL,我建议你切换到PostgreSQL。 Django更倾向于PostgreSQL,无论如何它都是一个更好的数据库。

在线Django文档非常棒,这使得它与其他所有框架区别开来。我还推荐James Bennett的书Practical Django Projects

答案 4 :(得分:2)

  • Django:听说它有最好的管理 接口。但是使用它自己的ORM,即不使用SQL-Alchemy。

  • Web2py:没研究过这个。

  • Turbogears2: 默认情况下使用SQL-Alchemy,使用Catwalk进行管理 接口,但文档不是 大。

我之所以选择Turbogears2,是因为它使用了流行的组件,所以我没有学到任何新东西......

答案 5 :(得分:2)

我广泛使用了web2py和RoR,虽然RoR在过去几年中获得了很多人气和支持,但web2py更简单,更清洁,更少“神奇”,而且还提供了更多(有用)功能开箱即用的功能。我会说web2py比RoR更具潜力,但它是一个相对较新的框架,并且还没有RoR的成熟度。 (尽管如此,我会在任何一天选择web2py而不是RoR ......)

答案 6 :(得分:1)

如果你“在构建它时不想看到任何HTML”,那么你可以忘记Django。它并不专注于“点击完成”,它专注于在最短的时间内从概念到生产的专业人士。模板语言的分层特性可以带来一些非常干净的整体网站布局。我将Django用于所有较大的网站,我喜欢它。

虽然它是用PHP而不是Python编写的,但您可能会看一下2或3个月前出现的WordPress的主要新版本。在3.0中,它们已经远远不能成为“仅限博客”的环境,并且有大量现成的模板。当然,如果你想调整一个模板,那么,又有一个讨厌的旧HTML。我正在考虑将它用于我的小客户端,这些客户端无法处理专用服务器的管理员等,这些服务器往往带有Django站点。

<强>更新 啊,我错过了这个半开玩笑 - 我太早了,这往往让我听不到幽默。至于使用现有站点中的模板,我已经成功地使用了几个站点,包括静态站点和最初由编写良好的PHP脚本驱动的站点。我建议您仔细阅读{% extends %}{% include %}文档。两者都采用字符串文字变量。我使用了后面的方法,它对于具有强大层次结构的站点非常有用,该站点通过跨分支的样式更改来区分。

理解模板的搜索顺序也是值得的 - 它可以用来起到很好的效果,但是如果你不理解它可能会令人费解。请参阅settings.py文件中与模板相关的项目以获取此项和其他有用的好处。