Python中是否有生产就绪的Web应用程序框架?

Pio*_*zda 14 python web-applications

我听到很多关于Python语言的好评.他们说它成熟,富有表现力......我正在寻找Python中的生产就绪企业应用程序框架.通过"生产就绪"我的意思是:

  • 支持使用缓存和声明性解释的客观关系映射(如JPA,Hibernate等)
  • 面向控件的用户界面支持 - 没有HTML模板,但像JSF(RichFaces,Icefaces)或GWT,Vaadin,ZK
  • 组件分解和依赖注入(如EJB或Spring)
  • 单元和集成测试
  • 良好的IDE支持
  • 集群,模块化等(如Terracota,OSGi等)
  • IBM,Oracle等公司在其中编写了成功的应用程序(我的意思是真正的商业应用程序而不是Twitter)
  • 可以得到商业支持

Python世界中有可能吗?或者只有以下选择:

  • 使用Python并从底部写下所有内容(太费用了)
  • 坚持使用Java EE
  • 买.NET堆栈

Man*_*tis 26

Django似乎是明显的选择.它是迄今为止最稳定和最发达的框架,被几家大公司使用.

因为它是一个Python框架,所以它通常可以使用任何Python模块,以及为Django制作的许多模块.

它应该满足您的所有需求,并且学习/部署并不十分困难.

  • Django对我来说很糟糕.模型看起来很好,有一个简单的基于注释的事务支持.查看图层和模板系统极差且不可接受.我不想考虑请求,获取,发布,但关于方法和事件.必须重新审视视图层(可能是Flex)我找不到任何有状态组件.Django是一个用于创建网站和电子商店的工具,但不适用于企业应用程序. (3认同)
  • django是显而易见的选择,如果你所知道的只是django并且不了解OP提到的所有java缩略词以及他们的价值主张是什么. (3认同)
  • Django +1,顺便说一句,我讨厌web2py和那些强迫他的下属使用web2py的人...... (2认同)

Gui*_*ume 15

对于上下文,我在瑞士的一家大型私人银行工作,在J2EE堆栈上编写企业应用程序.

Python中有很多"Production Ready"Web框架.并且有很多基于Python的大型网站.

也就是说,我认为Python是一个企业应用程序的糟糕选择.它可以用作粘合语言或脚本语言(我们的部署脚本是Python).对我来说showstopper是向后兼容性(Python 3.x不向后兼容Python 2.x).Python哲学似乎更多的是创新并使语言更好,更顺畅,而不一定支持10年前编写的程序.

在Web框架方面,我喜欢Django,但它确实太年轻了,它的发展太快,无法在企业中使用.我对其他基于Python的框架没有太多经验.

如果您需要面向企业的框架,则必须使用企业堆栈(Java/.Net).

另一方面,即使在Java世界中,也存在使用不那么有事业性的框架的倾向.认为Spring vs EJB2或EJB3的重量比EJB2轻得多.或者认为Flex(在我看来远非企业框架)在企业中越来越多地被使用.所以,如果您的企业是开明不够,准备跳进去以后,使用Django,回报率或其他现代的Web 2.0,社区驱动,开放源码,下一代,活动记录基于框架...可能不会有太大的舒展的那个. ..

最后,直接回答几点意见:

  • 支持ORM /缓存/ ...:是的,但大多数解决方案都基于活动记录,这对于您可能想要做的事情的90%来说很好,但绝对不像JPA/Hibernate那样完整/复杂
  • 面向控制的UI:不,你不会找到标准,所以你不会找到第三方组件.您可能获得的最接近的是与jQuery或其他JS UI框架的集成
  • 依赖注入:Spring有一个Spring到Python的端口,由SpringSource维护.但DI并不是Python哲学.使用函数,默认参数和闭包将解决同样的问题.我们可能会争辩说Pythonic解决方案比Java方式更清晰......
  • 单元/集成测试:非常好的支持,多个测试框架.尽管如此,支持还不如Java,我们有大量的测试工具.
  • 良好的IDE支持:对动态语言提供的大量支持存在技术限制,但至少Eclipse和Netbeans都对Python有很好的支持.
  • 集群/模块化:集群将通过"无共享基础架构"和/或分布式缓存来解决.据我所知,没有模块化解决方案(在OSGI意义上).但我会经常挑战OSGI是解决我们在企业中没有的问题的解决方案......

  • Python比典型的C++/Java实现具有更多的向后兼容性,具有Python 3.x的*可能*异常.我发现JVM/C++编译器更改中的更多破坏,更不用说库更改,而不是Python升级.与近年来C++和Java的一些变化相比,即使从2.x变为3.x所需的变化也是温和的.考虑到它的集成和摘要有多好,似乎没有其他理由不把Python称为"企业家". (6认同)
  • 我认为向后兼容性是无关紧要的,因为仍然支持Python 2.它不像Java那样假设你应该总是升级到最高版本 - 这两股目前并行增长. (2认同)

dug*_*res 5

看看Zope ......