未来的Web2py如何发展?

15

考虑到web2py的规模和缺乏资源和企业支持,您是否认为学习web2py作为我唯一了解的Web开发框架是明智的选择?我正在考虑学习Ruby on Rails或web2py,以便为学校项目创建一个网站。

10个回答

24

web2py在竞争对手产品中的市场份额较小,但它也要年轻得多。我知道至少13家咨询公司提供web2py支持。不管怎样,我相信web2py比其他系统更容易使用,因此您需要的支持比您想象的要少。大多数当前用户通过web2py google小组获得支持,在那里您可以找到29781条消息,并且几乎所有问题都在24小时内得到了贡献者之一的回答。


17

学习不当。福尔摩斯解释道:

“你瞧,”他解释说,“我认为一个人的大脑最初就像一个空无一物的小阁楼,你必须用你选择的任何家具来填充它。愚者会把他遇到的所有木材都拿进来,这样对他有用的知识就被挤出去了,或者最好是跟其他许多东西混在一起,以至于他很难找到它。现在,熟练的工匠非常小心地考虑他将要接纳他的内容。他只会拥有那些可以帮助他完成工作的工具,但其中有很多种类,并且全部都排列得井井有条。认为这个小房间拥有弹性墙壁,可以扩张到任何程度,是一个错误。请相信,对于每增加一份知识,总有一些你之前所知道的东西被遗忘了。因此,不要让无用的事实挤出有用的事实是至关重要的。”

我确定我不是唯一一个在许多糟糕且文档不全的Python Web框架中浪费了大量时间,试图找到一个可用的框架。如果我用Ruby或PHP编程,我可能已经把那些时间用来编写Web应用程序了。这就是在Python中进行Web开发的诅咒。

以下相关问题可能会有所帮助:

stackoverflow.com关于Web框架的标签 http://spreadsheets.google.com/pub?key=tZCdBPAkC75t27UzsPdLfMg&oid=2&output=image

图表中未包括13,000多个被标记为[php]的问题,但我们不要去那里。

需要明确的是,虽然选择一个Python Web开发框架可能会让人感到困惑,但一旦你决定了一个框架,你就可以用Python编程。这是使用Python进行Web开发的福音。这真的很好。

我的建议是不要接受任何缺乏完善文档的框架。有很多选择,没有必要妥协于质量差、文档不全的框架。如果没有找到符合要求的框架,那么最简单的框架,也就是那些没有任何魔法的框架,是工作愉快且容易学习的。


13
是的,但不幸的是,关于RoR的大部分指南都只是烹饪书,“做这个,输入那个,点击这里,太好了!你已经完成了15分钟博客!”如果你的老板走过来对你说:“约翰逊,你有15分钟时间。帮我建一个博客”,那这很棒。但如果你想要创造与众不同的东西,这些指南就没用了。更好的选择是Django书籍,它可以解释“为什么”事情会变成它们现在的样子,这样你就知道你打算做什么。在谷歌搜索中输入“Django Book”即可找到免费的书籍(我不确定如何在评论中添加链接,否则我会提供链接)。 - Jonathanb
我在桌子上有 Django 书籍的第二版,很不错。 - joeforker
3
我认为他的意思是“你可以使用非 PHP 的编程语言来编程”。 - Soviut
2
我是一名Python程序员,我肯定是指Python。Ruby程序员可能会有不同的看法,他们可能会写出自己的答案。 - joeforker
我不明白将图表放在这里的意图。你想讨论什么? - amit kumar
显示剩余6条评论

17

web2py可能年轻,但邮件列表每月有约2000条消息,与Django相似,比Turbogears要多得多。我通常能在几个小时内得到我的问题的答案。

还有一个出色的在线书籍,但我发现最好的信息来源是邮件列表。

我已经使用了RoR、Django、Turbogears和web2py,发现web2py最具生产力。


12

学习很好。

学习一些东西(最终会被遗忘)并不会有任何损失。网页开发的基本技能(HTML、CSS、URL解析、GET和POST请求方法)永远不会改变。

框架来了又去。尽可能多地学习它们,学会如何管理你的学习,这样你就可以(a)首先掌握重要的东西,(b)在学习新框架时抛弃其他框架的内容。

每个框架都有自己的偏见(或关注点)。一旦你明白了这一点,你就可以在没有所有“比较和对比”阻碍的情况下使用它们。一旦你学会了web2py,那么在学习Django时,你必须小心谨慎,从零开始学习,不要将旧概念翻译到新概念中。


1
+1 每个框架都建立在另一个框架的基础上。原则通常是相同的,唯一不同的是方法。总体而言,你所学的是可移植的。 - Soviut
去学习Zope吧,你会发现它非常不同。 - joeforker
@joeforker: 真的。在转向Django之前,我曾经使用过ZOPE一段时间。它们确实有很大的不同。 - S.Lott

7

Web2py是一个很好的学习工具。如果要部署到服务器上,请确保它支持wsgi。有时候,php也是一种可行的选择,因为你知道它几乎在任何地方都得到了支持。


3

问问自己从这个经验中想要得到什么。比如说,是更重要地尽快构建和运行应用程序,还是想学习有关Web堆栈架构的知识?

如果你只是想要结果,那么显然,如果你坚持使用更常用的框架,你将有更多的代码和文档可以借鉴。如果你咬紧牙关接受Django的世界观,你可以非常快速地构建功能强大的应用程序。如果你能找到一些预制的可重复使用的Django应用程序来处理你的问题的一部分,它会更快。

但是,如果你想确保对HTTP请求处理到数据库访问和抽象再到表单生成和处理以及HTML模板化的所有请求周期的内容都有很好的理解,那么你最好选择一个最小的框架,它可以迫使你更多地思考架构,并且代码库足够小,你可以从头到尾阅读所有内容而不需要文档。在这种情况下,我建议深入探究并在WSGI库的基础上构建自己的框架(如果可以避免浏览器怪异性的话,你实际上不想浪费时间学习解决它们的复杂性)。一旦你构建了自己的框架,并看到了哪些地方变得复杂,以及权衡取舍在哪里,你就会处于一个很好的位置来判断其他框架,并决定是否有一个框架适合你的工作方式。


2

这可能看起来有些离题,但Paul Graham写的关于这个主题的文章《Python悖论》可能是我见过最好的: The Python Paradox

换句话说,如果你想为我工作,我会在简历上注意到这种自由思考和实验,无论这项工作是商业、学术还是其他方面。而且我相信我不是唯一一个这样做的人。


1
很高兴我发现了这个帖子!因为Web2Py网站上一些过时的页面和损坏的外部链接几乎吓到了我。但至少现在我知道Web2Py周围有一个相当不错的社区。
我刚刚浏览了一堆Python Web框架,Web2Py的描述听起来很诱人,成功让Django听起来过于繁琐。我相信对于更大的项目,Django的设计决策避免了“太多魔法”的缺点。
但是仅仅将某些“合理默认值”的东西放到网络上听起来非常好。我们可以制作一些临时性的网站来处理某些暂时的事情...
应该有一个无需安装的家用样式框架的空间... 一些项目有着有趣的可能性。我已经看到有人已经把Python框架+服务器移植到了Android手机上:)
对于我来说,多亏了这个帖子,我会学习两者。
另外一个想法;如果Web2Py是开源的,并且您喜欢它的功能,您甚至在未来成为唯一的用户时也不介意,因为您可以自己添加功能?
请注意,我还没有使用过这两个框架,只是阅读了文档。我认为Web2Py的开发者应该在他们的网站上发布一份简介,以更详细地区分自己和Django,我还没有能够解决选择正确框架时的所有疑问。

哎呀,我想有些人可能会认为这是一个“尸体帖子”了,我没注意日期... - Tsais
1
我认为Web2Py太混乱了,没有真正的架构使其成为适合严肃生产网站的选择。它没有经过仔细规划,当您需要一些合理的自定义而不是“默认行为”时,您可能会遇到困难。Django自1.0以来就非常成熟和稳定,但Web2Py致力于向后兼容(这意味着它并不真实,或者您将在代码中找到许多过去的错误想法)。Web2Py甚至没有遵循其所基于的语言的规则。此外还有其他缺点,例如默认情况下缺乏真正的模型。 - Tadeck

1

我已经使用过Java EE和Django。Web2py的学习曲线非常快!这太不可思议了!我用Java开发需要三天的东西,现在用web2py可以很快地完成。当然,Web2py没有像RoR那样丰富的插件,但毫无疑问,我们可以使用web2py快速完成这些事情。因此,这是一个很好的学习机会=)


0

我同意S.Lott的观点:“学习一些(最终会消失的东西)根本不算损失。”

没错,但是让我建议一下,即使是学术项目也应该尽可能得到更好的支持,否则学习和教授一些不受良好支持、调试、稳定等方面影响的东西可能会非常令人沮丧和浪费时间。你花费的时间,以及可能是你的听众/学生,都应该在某种程度上考虑未来...

举个例子,看看turbogears


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