Django、Turbo Gears、Web2Py,哪个更适合什么?
我有一个项目想法,觉得这次真的该开始学习编程了。
经过一番阅读,我决定先学Python,而不是C#或Java。让我最信服的是Paul Graham对编程语言和Lisp的讨论,虽然Arc还在实验阶段,现在用不上。
关于快速开发网页应用,我查了Django、Turbo Gears和Py2Web。尽管花了很多时间阅读,但我还是不知道该用哪个。
1) Django 的网上资料看起来最棒,还有很不错的教程,他们确实知道怎么展示自己。
2) Web2Py 吸引我的是它不需要安装,并且声称让Django看起来复杂。但当你在他们的网站上深入了解时,会发现很多内容多年没有更新,还有坏掉的外部链接……网站上有些“幽灵”内容,让不太熟悉这个项目的人担心它可能已经停滞不前。
3) Turbo Gears ……我想它也是模块化的。写关于它的人都很喜欢……但我找不到什么特别之处,让它比Django更出色。
我还没决定用哪个IDE,虽然我看了这里关于Intellisense代码补全的所有回答。对像我这样的新手来说,能看到额外的代码片段也很不错,但我想我应该先选好网页框架,然后再选择一个适合的编辑器。
因为可能没有哪个框架在所有方面都是最好的,所以我想具体说一下我想做的应用:
它会用MySQL,需要注册/登录,并且会对输入的数据和SQL查询进行很多简单的数学运算。我在Excel里做了一个功能原型,所以我知道自己想做什么,希望这能帮助我克服新手的困惑。这个应用会很小,不会很复杂。
而且在构建过程中我不想看到任何HTML ;-)
PS:感谢Stackoverflow的管理者,正好在这个时候找到这个地方!
7 个回答
我对Django的使用体验非常好。
- 它有内置的用户认证功能,还有一些简单好用的扩展,比如
registration
。 - 文档写得非常好,容易理解。
- 你大多数时候会在
base.html
里写HTML模板,然后通过模板继承来使用它(注意:你至少需要写一点HTML)。 - 跟Turbogears相比,Django的使用体验更直接。
- 我没有用过web2py,但我觉得它在“开箱即用”方面做得有点过。
我得说,作为一个技术水平不高的开发者,使用web2py创建东西的速度让我大吃一惊。这很大程度上要归功于这个了不起的社区,以及Massimo的核心理念——让这个框架变得易于使用。
刚开始的时候,我在Python里连一行代码都没写过,甚至没听说过web2py。
我认真学习了大约一个月,进步很大(按照我自己的方式),从最开始问一些没人能回答的问题(因为那些问题根本没道理)到现在可以连续编程好几个小时,既不看书也不问问题。
我真的很佩服自己。
你可以查看 web2py 的在线文档,地址是 http://web2py.com/book。这个框架有一个基于角色的访问控制系统(这是一种比较通用的权限管理方式),而且它的权限设置非常细致,你可以为特定的操作和特定的记录授予访问权限。它自带一个网页上的集成开发环境(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())
从这个变更列表可以看出,web2py 项目非常活跃,地址是 http://code.google.com/p/web2py/source/list
如果你有关于 web2py 的问题,我强烈建议你加入 web2py 的邮件列表:http://groups.google.com/group/web2py/topics
我们非常活跃,你的问题会很快得到回答。