有人在使用 web2py 吗? [关闭]
Posted
技术标签:
【中文标题】有人在使用 web2py 吗? [关闭]【英文标题】:Anyone out there using web2py? [closed] 【发布时间】:2010-09-09 18:15:34 【问题描述】:有人在使用web2py吗?
具体来说:
生产中? 用什么数据库?使用 Google 应用引擎?
我所说的“在外面”是指在 ***。【问题讨论】:
【参考方案1】:欢迎您在google group 上提出同样的问题。您会发现那里有 500 多个用户,其中一些是开发公司,为他们的客户构建项目。
我的印象是,他们中的大多数人使用 postgresql(我就是这样做的),而其他一些人则使用 Google App Engine。事实上,web2py 是唯一允许您编写一次代码并且相同的代码可以在 GAE、SQLite、mysql、PostgreSQL、Oracle、MSSQL 和 FireBird 上运行的框架(有 GAE 施加的限制)。
您可以找到带有 GAE 源代码的 Reddish(reddit 克隆)设备here
Here你可以找到一些制作应用程序的链接。有些在 GAE 上运行。
@Armin:
Django 或 Pylons 没有任何问题。它们是优秀的框架。我在开发 web2py 之前使用过它们。你可以用 web2py 做一些你不能用它们做的事情。例如:
web2py 使用 Postgresql 进行分布式事务,Armin 请求此功能。 Django ORM 本身不进行迁移(请参阅South),web2py 可以。 Django ORM 不允许部分求和(计数(字段))和分组,web2py 允许。 web2py 可以同时连接到多个数据库,web2py 在很多方面做得更好(使用更一致的 API)和更快(例如处理模板和生成 SQL)。 web2py 也非常紧凑(所有模块都适合 265K 字节),因此它比那些竞争项目更容易维护。
您只需要学习 Python 和 81 个新函数/类(其中 50 个与对应的 html 标签具有相同的名称和属性,BR
、DIV
、SPAN
等,19 个是验证器,@ 987654330@、IS_INT_IN_RANGE
等)。
无论如何,最重要的问题是 web2py 比 Django、Pylons、php 和 Rails 更容易。
您还会注意到 web2py 托管在 Google Code 和 Launchpad 上,并且没有开放票证。过去的所有问题都在不到 24 小时内得到解决。
您还可以在 google 邮件列表上查看所有线程(今天的 10056 条消息)在 24 小时内得到我或其他开发人员之一的答复。
你可以在亚马逊上找到一本关于 web2py 的书。
Armin,我知道你是 Jinja 的开发者。我喜欢 Jinja,但有不同的设计理念。 Django 和 Jinja 都定义了自己的模板语言(特别是 Jinja 有很好的文档),但我更喜欢在模板中使用纯 Python,这样我的用户根本不需要学习模板语言。我很清楚每种方法的优缺点。让用户决定他们喜欢什么。无需互相批评。
@Andre:db.table.field 指的是字段对象。 'table.field' 是一个字段名。当需要字段名称时,您始终可以传递字段对象,因为 str(db.table.field) 是“table.field”。唯一需要使用字符串而不是对象的情况是,当您需要按名称引用尚未定义的字段时……也许我们应该将此讨论移到适当的位置。 ;-)
我希望您决定尝试一下 web2py,无论您喜欢与否,我都希望听到您的意见。
【讨论】:
+1 “我更喜欢在模板中使用纯 Python”。实际上这就是我在项目中使用 webpy 的原因。是时候学习 web2py 了。 您介意编辑此答案以指示信息何时更新(只是为了确保我没有阅读过时的内容) 我似乎无法编辑它,但是可以。此信息已过时。请在书web2py.com/book 中查找更新信息。这是一个正在生产中的优秀 web2py 站点tenthrow.com 如果选择哪一个来更高效地编码/开发,web2py 无疑是赢家!!【参考方案2】:我正在将 web2py 用于小型网络应用程序。它在 Mechanical Turk 项目上运行 HIT,并为我提供了一个界面来控制和可视化它们。我开始使用 Google App Engine,但后来厌倦了无法直接访问数据库以及每次要上传代码时都必须永远等待的小烦恼,并使用 postgres 转移到本地服务器。 GAE 使大多数事情变得更难,以使一些扩展事情变得更容易...远离它,除非你真的需要他们的扩展帮助。
我非常喜欢 web2py。与 Django 和 Ruby on Rails 相比,它更容易学习和上手。一切都很简单。您可以快速完成工作。 Massimo 到处都在解决您的问题(甚至在这个板上哈哈)。
【讨论】:
【参考方案3】:我大约在 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 相比,您的启动速度要快得多,如果您更改数据库模型,部署更容易且麻烦更少。
【讨论】:
来自 Django,我可以告诉你 web2py 这样做是因为它们实际上允许你使用多个数据库。大写字母只是一种约定,因此您不要将框架功能与您自己的功能混淆。【参考方案4】:正如 Massimo 上面指出的那样,tenthrow 的团队使用 web2py 处理 tenthrow.com
我们在 2009 年完成了大部分开发工作。我们的堆栈使用 cherokee、web2py、postgresql 和 amazon s3。在此之前,我们已经在各种框架和后端上完成了许多 Python Web 实现。如果说没有 web2py,我们根本不可能如此快速和轻松地完成 tenthrow,这是一种轻描淡写的说法。这是 Web 开发中最保守的秘密。
【讨论】:
【参考方案5】:我正在评估 Web 框架很长时间了。我用 Perl 和 PHP 编写了我自己的(不是开放的)框架。嗯,PHP 有一个内置的死胡同,整个基础设施仍然很差,但我不想回到 Perl,所以我检查了 Python 和 Python Web 框架,如 Django、Turbogears、Pylon 和 web2py。有很多事情需要考虑,如果你想选择一个不是你自己的代码栈,你会经常挠头,因为仍然没有“正确的方法”来编程。然而,web2py 是我目前最喜欢的,因为尽管作者是一个“真正的程序员”,但让事情变得简单!看看 web2py 网站上的比较——我想知道为什么像 django 或 turbogears 这样的 python 框架必须在它们的代码中引入如此冗余和复杂的语法——web2py 表明,实际上保持语法简洁和简单是可能的!
@Armin:你能具体说明你的批评吗?您究竟在哪里看到 web2py “绕过 Python 语义”?我不懂你什么意思。我必须承认,我现在对 python 的了解还不是很深,但我认为 web2py 代码没有问题——事实上,我认为它非常出色,并且是当今最好的框架之一。
【讨论】:
【参考方案6】:我将 web2py 用于学术目的。大约一年前,我在 pythonanywhere 上发布了一个数字 text book for german grammar。
该资源需要身份验证,看起来像一个带有角色、活动和成绩的小型 LMS。这是我第一次有这种体验。它是成功的,因为 PHP 对我来说太难了,只有 web2py 可以提供一种清晰的方式来处理数据库。使用 Python,我可以轻松地解决我的问题。 G。文本分析和下载报告。至于数据库,那么 SQLite 就完全够用了。
我的学生喜欢设计和一切运作的方式。所以我对结果非常满意,并将为我的大学开发其他有趣的应用程序。
我认为 web2py 非常适合应用语言学家和 L2 教师,他们在计算机科学方面的经验不如程序员。所以这是我的拙见。
【讨论】:
【参考方案7】:这里列出了一些用户:http://mdp.cti.depaul.edu/who。
【讨论】:
我正在专门寻找 *** 用户。 啊,好的。我对“外面”的误解:)。【参考方案8】:我开始将它与 Postgresql 一起使用。但距离生产还有很长的路要走……我也玩过 Zope V2 和 Ruby on Rails,真的很喜欢 web2py 的方法。
【讨论】:
【参考方案9】:我投票支持 Web2py。我只有时间开发一些小而有用的东西供我自己使用。
希望下个月我有机会创建一个非常适合 Web2py 并在 Google 应用引擎上运行的应用。
Web2py = 呼吸新鲜空气!
【讨论】:
在 django 上呼吸新鲜空气?【参考方案10】:我们将它与我们的中文教师网站www.dominochinese.com一起使用。我们的主持人是pythonanywhere.com,我们喜欢它的简单性。我致力于构建东西,而不是希望我能让东西正常工作。我与 django 一起工作了 1.5 年,我讨厌它。从某种意义上说,我觉得 web2py 是 PHP 但在 python 中。它使人们无需进入面向对象编程就可以快速完成工作,这对于初学者和中级程序员来说真的很困惑。
【讨论】:
【参考方案11】:我没有使用 web2py。但是我查看了源代码,这很可怕,原因有很多。一方面,数据库定义以及视图和模型(我不知道是什么)根据全局值字典进行评估。在这方面感觉就像 PHP(它在名称行为中绕过 Python 语义)并且效率非常低,我可以想象它很难维护。
我不知道最近关于 web2py 的所有问题来自哪里,但我真的看不出有人想要使用它的原因。
Django 或 Pylons 有什么问题? web2py 做了什么你不能在几行代码中用 Django 做的,具有更好的性能,更容易阅读的代码和一个成熟的平台,如果出现问题,大量的开发人员会立即加入并解决问题。 (好吧,我必须承认有例外,但总的来说,开发人员会很快解决问题)
【讨论】:
“在 web2py 中你不需要导入 web2py 的东西”作为“积极的*点”在官方网站上的扩散足以让我从不认真看待它。 它是一个框架,而不是一个库。框架执行您的代码。 看来,你是不懂“实用胜于纯洁”的人之一。你继续按照你的方式编写代码,我继续在很短的时间内做同样的事情:) 您没有指定 web2py 有什么问题。源代码参数不再正确(如果曾经是的话)。 -1 你能解释一下你在 web2py 效率低下的原因吗?你有比较 django 和 web2py 中类似操作的基准吗?我不是在嘲笑 django(我喜欢它!),但你的批评没有证据支持。 “我查看了源代码,这很糟糕,原因有很多。其中一个......”但你只列出了一个原因,你没有解释为什么它不好。而你难以维持的“想象”也没有多大分量。此外,“更易于阅读”是主观的——我发现纯 Python 模板和 w2p 的 ORM 使我的代码更易于阅读,但意见会有所不同。【参考方案12】:我使用 web2py 已经 2 年了,这个 web 框架很棒而且很独特。易于使用,接受很多 DB,但支持的最佳 DB 是 postgres。 我已经使用 web2py 创建了 2 个项目,并且非常喜欢它的简单程度。 1 项目是财务管理和其他邮件跟踪器,两者都在生产系统(4 linux lpar 和 postgres)中运行良好。 web2py 是个不错的选择
[使用 web2py 2.5.1 创建的小型应用程序] 更新了
http://freitasmgustavo.pythonanywhere.com/calculoST/
【讨论】:
【参考方案13】:实际上它使用的是 MySQL,但它可能会立即切换到 postgresql,因为 web2py 是如此多样化:)
【讨论】:
【参考方案14】:我已经评估 Web 框架有一段时间了。我更喜欢 web2py,因为它易于上手、紧凑但功能强大。
【讨论】:
【参考方案15】:我喜欢它,因为它很小,我可以很容易地与我的应用程序一起分发。
【讨论】:
【参考方案16】:我们在 7 个月前开始使用 Web2py。我们已经在 El Prado(西班牙国家博物馆)有一个生产应用程序。我们开发了一个应用程序来检查和自动化所有系统,进行服务器统计、访问统计等。
【讨论】:
【参考方案17】:我在 Google Appengine 上为www.crowdgrader.org 使用它。 我存储数据如下:
我需要 ACID 的核心元数据存储在 Google Cloud SQL 中,这对我来说非常有效。对于大文本字段,我将键存储在 Google Cloud SQL 中,并将键值存储在数据存储区中。 用户键入的文本存储在 Google 数据存储区(见上文),密钥存储在 Cloud SQL 中。 文件上传进入 blobstore。我正在慢慢地将更多存储迁移到数据存储区,以便为不需要复杂查询并且可以处理一些最终一致性的事情获得更多写入带宽。
我很高兴 web2py + appengine + Google Cloud SQL + Datastore + Blobstore。
【讨论】:
【参考方案18】:我在生产环境中使用 web2py,在 webfaction 和 GAE 上使用 postgres。
【讨论】:
【参考方案19】:到目前为止,我将 web2py 用于小型项目,但我希望在我的公司中引入它。这是我最喜欢的网络框架。
My blog 使用 web2py 在 GAE 上运行。
我还有一个运行在 web2py 之上的 facebook 应用程序:My Top 10 Gift
【讨论】:
【参考方案20】:我在生产环境中使用带有 Google App Engine 的 Web2py。见https://www.nittiolearn.com。
对于存储数据,使用 Google Datastore(通过 web2py DAL 访问)除了存储使用 Google Cloud Storage 的大型资源。在过去的 5 年里,我在生产环境上进行了多次 web2py 版本升级,没有任何重大问题。
多年来,Google 应用引擎也基本没有摩擦。
但是 Web2py 和 Google 应用引擎都没有像我 5-6 年前所想的那样被广泛采用。如果我开始一个新项目,我不太可能使用 web2py 或应用程序引擎,因为对这些技术感兴趣的开发人员数量有限。
【讨论】:
感谢您的反馈(您的网站看起来不错 :) 另外,是的,在采用方面:很难让人们对没有广泛吸引力/适用性的技术感到兴奋。 另外,它仍然是 Python 2.7 还是正在向 3 发展? Google 应用引擎标准环境现在也支持 python 3。见 [cloud.google.com/appengine/docs/standard/python3/]。但我仍然使用 pytho 2.7。【参考方案21】:我在 custom application 的生产中使用 web2py 和 gae 和 google 数据存储,这是一个非常好的框架。
我确实对 GAE 上的工作进行了一些小修复,工作快速且稳定,我已在我的 github soyharso 上发布了 Web2Py 版本更改使用。
上传到 GAE 的速度很快,版本控制应用程序引擎是安全的,谷歌提供的用于调整代码的免费套餐非常好,每月的费用足够
【讨论】:
【参考方案22】:嗯,我正在专业地使用 Web2Py、PostgreSQL 和 Linux。我正在开发名为“Ourway”的社交网络。您可能会喜欢它的一些功能,例如“Blog”部分。
【讨论】:
【参考方案23】:http://www.noobmusic.com 正在使用 Google App Engine。
【讨论】:
【参考方案24】:我在生产中使用 web2py。目前,在早期生产阶段,我们正在使用 SQLite 进行开发,因为它很容易并且开箱即用,但稍后我们可能会切换到 MySQL。我认为没有使用 Google App Engine 的计划。
【讨论】:
【参考方案25】:这是相当古老的回应,但无论如何我都会加入。在 2008 年,这可能是一个很好的选择,还有 Django/Flask。它仍然可能是好的。 但是现在人们想要立竿见影的效果,学习曲线更短。
公平地说,web2py 并不是那么直观。
我是否需要学习 MVC 概念才能使用 MS Access?我不在乎 URL 路由,只需要在 Web 上显示一些表格,最好进行一些验证。加上一些身份验证。
这就是像http://jam-py.com/ 这样的框架大放异彩的地方!不仅你不会迷路,而且它确实让你想起了几十年来统治办公室的 Access。 2019 年仍然是规则。为什么?几乎没有学习曲线。
【讨论】:
感谢您提请我注意。我会检查的:)以上是关于有人在使用 web2py 吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释一下如何以及何时应该在 oracle 中使用 syscursor 吗? [关闭]
有人愤怒地使用带有 asp.net-mvc 的 Knockoutjs 吗? [关闭]
有人可以告诉我如何使用 ColdFusion 连接到 H2 数据库吗? [关闭]