Anyone out there using web2py?

67

有人使用web2py吗?

具体来说:

  • 在生产环境中使用吗?
  • 使用哪种数据库?
  • 与Google应用引擎一起使用吗?

    • 我指的是在stackoverflow上。
25个回答

105

欢迎您在谷歌群组上提出相同的问题。那里有超过500个用户,其中一些是为其客户构建项目的开发公司。

我印象中大多数人使用PostgreSQL(我也是这样做的),还有一些人使用Google App Engine。实际上,web2py是唯一允许您编写一次代码并且相同的代码将运行在GAE、SQLite、MySQL、PostgreSQL、Oracle、MSSQL和FireBird上(受GAE强制限制)的框架。

您可以在此处找到用于GAE的Reddish(reddit clone)应用程序和源代码here

在这里,您可以找到一些生产应用程序的链接,其中一些正在运行在GAE上。

@Armin:

Django或Pylons没有问题。它们都是很好的框架。在开发web2py之前,我曾经使用过它们。以下是web2py可以做到而它们无法做到的几件事情。例如:

  • web2py可以通过Postgresql进行分布式事务,Armin要求此功能。
  • Django ORM不能原生地进行迁移(请参见South),但web2py可以。
  • Django ORM不允许部分和(count(field))和group by,但web2py可以。
  • web2py可以同时连接多个数据库,Django和 Pylons需要进行修改才能实现。
  • web2py在应用程序级别而不是项目级别上拥有配置文件,就像它们一样。
  • webp2y会在服务器端记录所有的tracebacks供管理员使用,而Django和Pylons则不会。
  • web2py程序经常在GAE上无需修改即可运行。
  • web2py具有内置的xmlrpc web服务。
  • web2py 自带 jQuery。
  • web2py 在许多方面都做得更好(使用更一致的 API)且更快(例如处理模板和生成 SQL)。web2py 也非常紧凑(所有模块都适合于 265K 字节),因此比那些竞争项目更容易维护。

    您只需要学习 Python 和 81 个新函数/类(其中 50 个具有与相应 HTML 标记,BRDIVSPAN 等相同的名称和属性,19 个验证器,IS_IN_SETIS_INT_IN_RANGE 等)。

    无论如何,最重要的问题是 web2py 比 Django,Pylons,PHP 和 Rails 更容易。

    您还将注意到,web2py 托管在 Google Code 和 Launchpad 上,没有未解决的问题。所有过去的问题都在不到 24 小时内得到解决。

    您还可以在 Google 邮件列表上检查,所有线程(今天有 10056 条消息)最终都会得到我或其他开发人员的答复,在 24 小时内。

    您可以在 Amazon 上找到一本关于 web2py 的书。

    Armin,我知道您是 Jinja 的开发人员。我喜欢 Jinja,但有不同的设计哲学。 Django 和 Jinja 都定义了自己的模板语言(而且 Jinja 特别好的文档),但我更喜欢在模板中使用纯 Python,这样我的用户根本不需要学习模板语言。我非常清楚每种方法的利弊。让用户决定他们喜欢什么。没有必要互相批评。

    @Andre:db.table.field 是指字段对象。'table.field' 是字段名称。您始终可以在需要字段名称时传递字段对象,因为 str(db.table.field)是'table.field'。唯一需要使用字符串而不是对象的情况是当您需要按名称引用尚未定义的字段时...也许我们应该把这个讨论移到正确的地方。;-)

    我希望您能尝试一下web2py,无论您是否喜欢,我都很想听听您的意见。


9
我更倾向于在模板中使用纯Python。这也是我选择使用webpy进行项目开发的原因。现在是时候学习web2py了。 - systempuntoout
1
你介意编辑这个答案以指明信息更新的时间吗?(只是为了确保我没有阅读过时的内容) - tshepang
我似乎无法编辑它,但是是的,这些信息已经过时了。请在书籍http://web2py.com/book中寻找更新的信息。这是一个在生产中的优秀的web2py网站http://tenthrow.com。 - mdipierro
如果要选择哪种编码/开发效率更高的工具,web2py 显然是赢家! - Jatin Kumar

15

我正在使用web2py来开发一个小型网站应用程序。它正在运行 Mechanical Turk 项目上的 HITs,并给我提供了一个控制和可视化它们的界面。我最初使用了 Google App Engine,但后来厌倦了不能直接访问数据库和每次上传代码都需要等待很久的小烦恼,于是转移到了使用本地服务器带有 postgres 的环境。GAE 为了使一些扩展变得更容易,而使大多数事情变得更加困难......除非你真的需要它们的扩展帮助,否则最好远离。

我非常喜欢 web2py。与 Django 和 Ruby on Rails 相比,它要简单得多,学习起来更容易。一切都很简单,可以快速完成工作。Massimo 无处不在解决你的问题(即使在这个板块上哈哈)。


13

我大约6个月前开始使用web2py。我选择它,是因为我想从PHP转到Python,采用更面向对象的方法,因为Python的语言特性。

web2py的一站式开发非常棒,让入门变得非常快速。

作为以前symfony用户,我很快就开始怀念那些不依赖于表结构的组件和表单。

仅仅是一个简单的注册表单,我没找到一种DRY的方法。对我来说真正棘手的是表单验证。我忘记了详情,但最终我只能在表单本身进行表单验证,因为其他方法都行不通。

另外,这种大量重复字符的大写命名概念也不是我的菜。

dba.users.name.requires=IS_NOT_EMPTY()
dba.users.email.requires=[IS_EMAIL(), IS_NOT_IN_DB(dba,'users.email')]
dba.dogs.owner_id.requires=IS_IN_DB(dba,'users.id','users.name')
dba.dogs.name.requires=IS_NOT_EMPTY()
dba.dogs.type.requires=IS_IN_SET(['small','medium','large'])
dba.purchases.buyer_id.requires=IS_IN_DB(dba,'users.id','users.name')
dba.purchases.product_id.requires=IS_IN_DB(dba,'products.id','products.name')
dba.purchases.quantity.requires=IS_INT_IN_RANGE(0,10)

有时候名字需要加引号,有时不需要……如果我看一下已经用web2py做的例子或网站,我真的没有看到从使用php到现在的很大进步。

我建议你:看看web2py是否适合你。这会很好,因为社区和特别是massimo(创始人)非常乐于助人和友善。

此外,与Django相比,您可以更快速地开始使用,部署更容易,并且如果您更改数据库模型,则减少了麻烦。


6
作为Django的一名用户,我可以告诉你,web2py之所以这样做是因为它实际上让你使用超过一个数据库。大写字母只是一种惯例,这样你就不会将框架函数与自己的函数混淆。 - Unknown

12

正如Massimo在上面提到的,tenthrow团队使用web2py开发tenthrow.com

我们大部分的开发工作是在2009年完成的。我们使用了cherokee,web2py,postgresql和amazon s3来搭建我们的技术栈。在此之前,我们已经使用多种框架和后端进行了许多Python Web实现。毫不夸张地说,如果没有web2py,我们简直无法如此快速轻松地完成tenthrow。这是Web开发领域中最好的秘密。


11

我一直在评估Web框架。我用Perl和PHP编写了自己的(不是开源)框架。然而,PHP内置有缺陷,整个基础设施仍然相当差,但我不想回到Perl,所以我查看了Python和Python Web框架,如Django、Turbogears、Pylon和web2py。如果您想选择一个不是自己的代码堆栈,有很多事情要考虑,并且您经常会因为仍然没有“正确的方法”来编程而烦恼。然而,web2py是我目前最喜欢的,因为作者尽管是一个“真正的程序员”,但保持易用性!只需查看web2py网站上的比较 - 我想知道像Django或Turbogears这样的Python框架为什么不得不在他们的代码中引入这种冗余和复杂的语法 - web2py表明,实际上可以保持语法简洁和易懂!

@Armin:您能否具体说明您的批评意见?您在哪里看到web2py “绕过Python语义”?我无法理解您的意思。我必须承认,我现在对Python不是很深入,但我认为web2py代码没有问题 - 实际上,我认为它非常出色,是今天最好的框架之一。


7

我用web2py进行学术研究。大约一年前,我在pythonanywhere上发布了一本数字德语语法课本

该资源需要验证,并且看起来像一个小型的LMS,具有角色、活动和成绩。这是我第一次尝试这种方式。由于PHP对我来说太难了,只有web2py能提供一个清晰处理数据库的方法。使用Python,我可以轻松解决我的问题,例如文本分析和下载报告。至于数据库,SQLite完全足够。

我的学生喜欢设计和功能的方式。所以我对结果非常满意,将开发其他有趣的应用程序给我的大学。

我认为web2py非常适合应用语言学家和L2教师,他们不像程序员那样有计算机科学的经验。这是我的谦虚意见。


6
我们正在将它与教授中文的网站www.dominochinese.com配合使用。我们的主机是pythonanywhere.com,我们喜欢它的简单性。我致力于构建东西而不是希望能让东西运转起来。我曾经使用过django长达1.5年,但我不喜欢它。在某种程度上,我觉得web2py就像是Python中的PHP。它使人们能够快速完成工作,而无需涉及面向对象编程,这对于初学者或中级程序员来说可能非常困惑。

6
我开始使用它与Postgresql。但离生产还有很长的路要走...我也试过Zope V2和Ruby on Rails,真的喜欢web2py的方法。

6
我支持Web2py。我只有时间开发一些小而有用的东西供自己使用。
希望下个月我有机会创建一个完美运行在Google应用引擎上的应用程序,而Web2py正是最好的选择。
Web2py = 新鲜空气!

Django之外的一股清新空气? - rogerdpack

6

1
我特别寻找StackOverflow的用户。 - Christopher Mahan
啊,好的。我误解了“out there”的意思 :)。 - benefactual

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接