20

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

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

至于 web app fast,我已经查看了 Django、Turbo Gears 和 Py2Web。尽管花了很多时间阅读,但我仍然不知道应该使用哪一个。

1) Django肯定有最好的在线形象,以及一个做得很好的现场教程,他们肯定知道如何炫耀他们的东西。

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

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

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

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

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

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

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

4

7 回答 7

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

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

于 2010-09-05T23:40:25.233 回答
6

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

刚开始我用 Python 写了 0 行代码 没听说过 web2py

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

我真的很感动。

于 2010-12-02T18:19:13.990 回答
4

我对 Django 有过积极的体验。

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

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

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

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

于 2010-09-05T19:37:54.620 回答
2
  • Django:听说它有最好的管理界面。但使用它自己的 ORM,即不使用 SQL-Alchemy。

  • Web2py:没有研究这个。

  • Turbogears2:默认使用 SQL-Alchemy,使用 Catwalk 作为管理界面,但文档不是很好。

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

于 2010-09-21T06:17:12.247 回答
2

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

于 2013-04-11T09:28:39.517 回答
1

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

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

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

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

于 2010-09-05T12:34:29.493 回答