有人在使用web2py吗?
是否有人使用web2py *?
具体来说:
- 在生产中?
- 用什么数据库?
解决方案
回答
这里列出了一些用户:http://mdp.cti.depaul.edu/who。
回答
我开始在Postgresql中使用它。但是还有很长的路要走……我还玩过Zope V2和Ruby on Rails,真的很喜欢web2py的方法。
回答
我没有使用web2py。但是我看了一下源代码,由于很多原因,它太可怕了。对于数据库定义以及视图和模型(我不知道是什么),它们是根据全局值字典进行评估的。在这方面感觉就像PHP(它在名称行为中绕过Python语义)并且效率很低,我可以想象它很难维护。
我不知道关于web2py的所有毛病来自何处,但是我真的看不出有人愿意使用它的原因。
Django或者Pylons有什么问题? web2py在几行代码中具有我们无法使用Django所具有的功能,这些代码具有更好的性能,易于阅读的代码以及在已建立的平台上的平台,在该平台上,成千上万的开发人员会迅速介入并解决问题(如果出现的话)。 (嗯,我必须承认有些例外,但是总的来说,开发人员会很快解决问题)
回答
我大约在6个月前开始使用web2py。我之所以选择它,是因为我想从PHP转到Python,因为python的语言特性,使其具有更面向对象的方法。
web2py的多合一方法确实很棒,并且使启动非常快。
作为前symfony用户,我很快就开始想念不依赖于表结构的Components和Forms。
仅凭一个简单的注册表格,我就找不到找到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相比,我们拥有更快的开始时间,如果更改数据库模型,则部署更容易,麻烦更少。
回答
欢迎我们在Google网上论坛中问同样的问题。我们会在这里找到500多个用户,其中一些是为他们的客户构建项目的开发公司。
我的印象是,大多数人都使用postgresql(这就是我要做的),而另一些人则使用Google App Engine。实际上,web2py是允许我们一次编写代码的唯一框架,并且相同的代码将在GAE,SQLite,MySQL,PostgreSQL,Oracle,MSSQL和FireBird上运行(受GAE的限制)。
我们可以在此处找到带有GAE源代码的Reddish(reddit克隆)设备。
在这里,我们可以找到一些制作应用的链接。有些正在GAE上运行。
@Armin:
Django或者Pylons没错。他们是优秀的框架。在开发web2py之前,我已经使用过它们。使用web2py可以做一些事情,而不能使用它们。例如:
- web2py使用Postgresql进行分布式事务,Armin要求使用此功能。
- Django ORM本身不会进行迁移(请参见South),而web2py不会。
- Django ORM不允许部分和(count(field))和分组依据,web2py允许。
- web2py可以一次连接到多个数据库,需要对Django和Pylons进行黑客攻击,然后
- web2py在应用程序(而不是项目级别)上有一个配置文件,就像它们一样。
- webp2y会为管理员记录所有回溯服务器端,而Django和Pylons不会。
- web2py程序通常在未经修改的GAE上运行。
- web2py具有内置的xmlrpc Web服务。
- web2py带有jQuery。
web2py在很多方面做得更好(使用更一致的API),并且做得更快(例如处理模板和生成SQL)。 web2py也非常紧凑(所有模块都可以容纳265K字节),因此,与那些竞争项目相比,web2py的维护更加容易。
我们只需要学习Python和81个新的函数/类(其中50个具有与相应的HTML标记相同的名称和属性,例如BR,DIV,SPAN等),而19个是验证器,IS_IN_SET, IS_INT_IN_RANGE等)。
无论如何,最重要的问题是web2py比Django,Pylons,PHP和Rails更容易。
我们还将注意到,web2py托管在Google Code和Launchpad上,并且没有开放的票证。过去的所有问题都已在不到24小时的时间内得到解决。
我们还可以在Google邮件列表中检查所有线程(今天有10056条消息)以我或者其他开发人员之一的答案在24小时内得到的答案。
我们可以在Amazon的web2py上找到一本书。
阿明,我知道我们是Jinja的开发商。我喜欢Jinja,但是有不同的设计理念。 Django和Jinja都定义了自己的模板语言(特别是Jinja具有出色的文档),但我确实更喜欢在模板中使用纯Python,这样我的用户根本就不需要学习模板语言。我很清楚每种方法的利弊。让用户决定他们喜欢什么。无需互相批评。
@Andre:db.table.field引用字段对象。 " table.field"是一个字段名称。由于str(db.table.field)是'table.field',因此在需要字段名称时,我们始终可以传递字段对象。唯一需要使用字符串而不是对象的情况是,当我们需要通过名称引用尚未定义的字段时……也许我们应该将讨论移到正确的位置。 ;-)
我希望我们决定尝试一下web2py,无论我们是否喜欢,我都希望听到意见。
回答
我正在评估Web框架很长时间了。我用Perl和PHP编写了自己的(非开放式)框架。好吧,PHP具有内置的死胡同,整个基础架构仍然很差,但是我不想回到Perl,所以我检查了Python和Python Web框架,例如Django,Turbogears,Pylon和web2py。如果我们想选择一个非我们自己的代码栈,那么有很多事情要考虑,因为我们仍然没有"正确的方式"对事物进行编程,因此我们常常会scratch之以鼻。但是,web2py是我当前的最爱,因为尽管喜欢"真正的程序员",但作者还是很容易做的!只是看一下web2py网站上的比较,我想知道为什么django或者turbogears之类的python框架必须在其web2py演示代码中引入这种冗余和复杂的语法,实际上有可能使语法简洁明了!
@Armin:能否请我们指出批评意见?我们在哪里看到web2py"绕过Python语义"?我不懂你什么意思。我必须承认,我现在对python的了解还不那么深,但是实际上我看不到web2py代码有问题,我认为它非常出色,并且是当今最好的框架之一。
回答
实际上,它使用的是MySQL,但由于web2py种类繁多,它可能会立即切换到postgresql :)
回答
我投票支持Web2py。我只有时间开发一些小而有用的东西供自己使用。
希望下个月我将创建一个非常适合Web2py并在Google应用引擎上运行的应用。
Web2py =呼吸新鲜空气!
回答
我正在将web2py用于小型Web应用程序。它在Mechanical Turk项目上运行HIT,并为我提供了控制和可视化它们的界面。我开始使用Google App Engine,但后来厌烦了没有直接数据库访问权限以及每次要上传代码时都必须永远等待的烦恼,然后使用postgres转移到本地服务器。 GAE使大多数事情变得更困难,以便使一些缩放操作变得更容易……除非我们确实需要它们的缩放帮助,否则请远离它。
我非常喜欢web2py。与Django和Ruby on Rails相比,它更容易学习和使用。一切都很简单。我们可以快速完成工作。 Massimo到处都可以解决问题(即使在此板上哈哈)。
回答
我在webfaction以及GAE上的postgres中使用web2py进行生产。
回答
我已经评估Web框架已有一段时间了。我更喜欢web2py,因为它易于遵循,紧凑而强大。
回答
我喜欢它,因为它很小,可以随我的应用程序轻松分发。
回答
我们7个月前开始使用Web2py。在El Prado(西班牙国家博物馆)中,我们已经有一个生产应用程序。我们开发了一个应用程序,用于检查和自动化所有系统,进行服务器统计,访问统计等。
回答
正如上文Massimo所指出的,位于tenthrow的团队将web2py用于tenthrow.com
我们在2009年期间完成了大部分开发工作。我们的堆栈使用切诺基,web2py,postgresql和amazon s3. 在此之前,我们已经在各种框架和后端上完成了许多python Web实现。要说没有web2py,我们根本不可能这么快,轻松地完成第十掷,这是一种轻描淡写。这是Web开发中最好的秘密。