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

Posted

技术标签:

【中文标题】Django、Turbo Gears、Web2Py,哪个更好?【英文标题】:Django, Turbo Gears, Web2Py, which is better for what? 【发布时间】:2011-04-08 10:36:58 【问题描述】:

我有一个项目值得我最终投入编程。

在这里和其他地方阅读了很多东西后,我决定让 Python 成为我现在学习的那种,而不是 C# 或 java。最让我信服的是 Paul Graham 对编程语言和 Lisp 的考察,虽然 Arc 处于实验阶段,这对我现在做这个网络应用程序没有帮助。

关于 web 应用程序的快速,我已经检查了 Django、Turbo Gears 和 Py2Web。尽管花了很多时间阅读,但我仍然不知道应该使用哪一个。

1) Django 无疑拥有最好的在线形象,而且现场教程做得很好,他们肯定知道如何炫耀自己的东西。

2) Web2Py 吸引了我,因为它不需要安装并且声称让 Django 看起来很复杂。但是,当您在他们的网站上四处搜索时,您会很快发现多年未更新的内容以及断开的外部链接......该网站上的鬼魂使不熟悉该项目的人担心它是否会变得平淡。

3) Turbo Gears ...我猜它也是模块化的。写过它的人都喜欢它……我找不到任何可能使它比 Django 更特别的东西。

我还没有决定使用 IDE,尽管我在这里阅读了 Intellisense 代码完成帖子的所有答案。对于像我这样的菜鸟来说,显示额外的代码 sn-ps 也很酷,但我想我应该先选择我的 web 框架工作,然后再选择一个可以很好地工作的编辑器。

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

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

而且我不想在构建它时看到任何 html ;-)

PS:感谢运行 *** 的人,我也正好在正确的时刻找到了这个地方!

【问题讨论】:

我认为您查看了错误的 web2py 站点。它是web2py.com。我们不知道有任何断开的链接,我们平均每两周发布一个新版本。当新版本发布时,整个网站都会更新。 我想我知道发生了什么:新网站上的免费应用程序下载链接之一让我在没有意识到的情况下进入了旧网站 - 因为它是旧网站,自然,它不符合日期。 您的手册读起来很棒,每一页都很享受…… 哎哟!你确实发现了一个错误。旧站点 (mdp.cti.depaul.edu) 应该已重定向到新站点,但它没有。现在已修复。谢谢。 【参考方案1】:

我对 Django 有过积极的体验。

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

【讨论】:

来自 django 教程,看来我可以将一些默认模板复制到我的应用程序路径中,然后在实际应用程序完成之前完成。然后我可能会莫名其妙地想重新设计模板......? 你可以试试。但是,HTML 也没有那么难。【参考方案2】:

如果您“不想在构建 HTML 时看到任何 HTML”,那么您可以忘记 Django。它不专注于“点击完成”,而是专注于在尽可能短的时间内从概念到生产的专业人士。模板语言的分层特性可以导致一些非常干净的整体站点布局。我在所有大型网站上都使用 Django,我喜欢它。

虽然它是用 php 而不是 Python 编写的,但您可以看看大约 2 或 3 个月前发布的 WordPress 的主要新版本。在 3.0 中,它们从成为“仅限博客”的环境已经走了很长一段路,并且有大量现成的模板可供使用。当然,如果你想调整模板,那又是那个讨厌的旧 HTML。我正在考虑将它用于无法处理专用服务器等管理员的小型客户端,这些客户端往往随 Django 站点一起提供。

更新: 啊,我错过了半个笑话——我起得太早了,这让我对幽默充耳不闻。至于使用来自现有站点的模板,我已经在几个站点上非常成功地做到了这一点,包括静态站点和最初由编写良好的 PHP 脚本驱动的站点。我建议仔细阅读 % extends %% include % 文档。两者都采用字符串文字 一个变量。我使用了后一种方法,它对于具有强大层次结构的站点非常有用,该站点通过跨分支的样式更改来区分。

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

【讨论】:

关于 no-html 的评论,我半开玩笑的说...我可以在睡梦中写 html,一直是工作中的 photoshop/template 人。所以我很兴奋 Django 让我可以使用现有的默认模板,所以我可以只专注于编写数据库和数学功能,如果我不想费心摆弄外观的话。自动折叠字段集似乎足以控制布局。 感谢您提供的额外提示,首先要知道要阅读和理解什么并不总是那么容易... 如果您喜欢 wordpress,请查看即时新闻(用 web2py 编写):code.google.com/p/instant-press @mdipierro:非常有趣!谢谢你的链接!【参考方案3】:

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

另外,除非有非常具体的原因让您使用 MySQL,否则我建议您切换到 PostgreSQL。 Django 更面向 PostgreSQL,无论如何它是一个更好的数据库。

在线 Django 文档很棒,这就是它与所有其他框架的不同之处。我也推荐 James Bennett 的书Practical Django Projects

【讨论】:

是的,当然,他们的通用视图有一些非常好的功能! 不是我,我不能投票,直到我得到 15 分......也许有人点击错误?我认为您的回答非常有帮助,一旦可以,我会给您一个 +... 我想问您为什么您更喜欢 PostgreSQL 而不是 MySQL。我想知道现在拉里拥有 MySQL 是否仍然是一个好主意。到目前为止,我坚持使用 MySQL 的主要原因是大多数托管公司都安装了它,并且有很多用于它的开源工具。虽然查看了 Web2Py,但我几乎可以使用它来管理任何受支持的数据库,包括 PostgreSQL... 查看这个线程:***.com/questions/110927/… -- 它有一些关于 MySQL 与 PostgreSQL 的好方法 我和 Tsais 一起做这个。甲骨文拥有的 MySQL 成为使用风险的工具。 好的,所以我在 MySQL 与 PostgreSQL 上阅读了那个大线程...总体而言,这是对 PostgreSQL 的一个相当大的认可...但是我是否总是需要至少一个虚拟主机来安装它我?我从未见过提供 PostgreSQL 的廉价网络主机。 *浏览 Web2Py 的托管建议...【参考方案4】:

您应该查看 web2py 在线文档 (http://web2py.com/book)。它带有基于角色的访问控制(最通用的访问控制机制),并且非常精细,您可以授予对特定记录的特定操作的访问权限。它带有一个基于 Web 的 IDE,但您也可以使用 WingIDE、Eclipse 和 PyCharm。它带有帮助系统,允许您在不使用 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

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

【讨论】:

我今天已经准备好安装 django,但是在找到了一个函数与代码示例比较的 pdf 后,我去了你的链接,我几乎得出结论 web2py 是最现代的网络框架作品。尤其是对于刚接触编程的人来说,为我处理安全问题非常好,而且我一直喜欢软件中有用的默认值。 还发现了几个人口众多的社区站点,因此我有足够的信心使用我最喜欢的功能集。我对什么是重要的事情的理解充其量是不完整的,但一个人永远不会超过当前的理解来做出决定;-)所以非常感谢你的回答,我发布这个是因为我正在阅读你的手动^^ 如有问题和建议,请随时联系邮件列表或我本人。 一个建议。如果您是新手,请从这个视频开始:vimeo.com/13485916 我看了关于 web2py 的教程和视频,看起来很有趣。 @mdipierro 应该澄清他是 web2py 框架的作者/开发者。【参考方案5】:

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

Web2py:没有研究这个。

涡轮齿轮2: 默认使用 SQL-Alchemy,使用 Catwalk 进行管理 界面,但文档不像 很棒。

我选择 Turbogears2 是因为它使用了流行的组件,所以我不需要学习任何新东西...

【讨论】:

据我在此期间发现的,你应该研究 Web2Py,它似乎没有走丑陋的捷径,以后会咬你。只需几个合理的默认设置,您就可以像这样控制一切:您可以让它生成您的 SQL 代码,然后显示或不显示给您,或者您可以自己编写。它所做的一切你都可以覆盖。我认为它不只是碰巧是最新的,它实际上是考虑到旧框架的优缺点,使其成为坚实的技术进步。【参考方案6】:

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

当我开始时,我用 Python 编写了 0 行代码 没听说过 web2py

我已经认真研究了大约一个月,并且已经(以我通常的方式)从提出没人能回答的问题(因为它们没有任何意义)到一次编码几个小时而不选择拿起一本书或问一个问题。

我真的很感动。

【讨论】:

【参考方案7】:

我已经广泛使用了 web2py 和 RoR,虽然 RoR 在过去几年里得到了很多人的欢迎和支持,但 web2py 更简单、更干净、不那么“神奇”,而且还提供了更多(有用的)输出开箱即用的功能。我想说 web2py 比 RoR 更有潜力,但它是一个相对较新的框架,还没有 RoR 的成熟度。 (尽管如此,我会选择 web2py 而不是 RoR...)

【讨论】:

以上是关于Django、Turbo Gears、Web2Py,哪个更好?的主要内容,如果未能解决你的问题,请参考以下文章

web2py--------------用web2py写 django的例子 --------建立一个投票应用

web2py--------------用web2py写 django的例子 --------开发环境

web2py--------------用web2py写 django的例子 --------建立一个投票应用

试图了解Django在视图和模板之间的通信

我可以在 Web2Py 中包含部分视图,将特定变量传递给它吗?

创建一个Django项目