Python中是否有一个可用于生产的web应用程序框架?
我听到了很多关于Python语言的好意见。他们说它是成熟的,富有表现力的等等。。。我正在寻找Python中支持生产的企业应用程序框架。我所说的“生产就绪”是指:Python中是否有一个可用于生产的web应用程序框架?,python,web-applications,Python,Web Applications,我听到了很多关于Python语言的好意见。他们说它是成熟的,富有表现力的等等。。。我正在寻找Python中支持生产的企业应用程序框架。我所说的“生产就绪”是指: 支持带有缓存和声明性描述的目标关系映射(如JPA、Hibernate等) 面向控件的用户界面支持-没有HTML模板,但类似于JSF(RichFaces,Icefaces)或GWT、Vaadin、ZK 组件分解和依赖注入(如EJB或Spring) 单元和集成测试 良好的IDE支持 集群、模块化等(如Terracota、OSGi等) IB
- 支持带有缓存和声明性描述的目标关系映射(如JPA、Hibernate等)
- 面向控件的用户界面支持-没有HTML模板,但类似于JSF(RichFaces,Icefaces)或GWT、Vaadin、ZK
- 组件分解和依赖注入(如EJB或Spring)
- 单元和集成测试
- 良好的IDE支持
- 集群、模块化等(如Terracota、OSGi等)
- IBM、Oracle等公司用it编写了一些成功的应用程序(我指的是真正的商业应用程序,而不是Twitter)
- 可以得到商业支持
- 使用Python并从底部编写所有内容(太昂贵)
- 坚持使用JavaEE
- 购买.NET堆栈
- 支持ORM/caching/…:是的,但是大多数解决方案都是基于活动记录的,这对于您可能想要做的90%都是好的,但肯定没有JPA/Hibernate那么完整/复杂
- 面向控件的UI:不,你找不到标准,所以找不到第三方组件。最接近的可能是与jQuery或其他JSUI框架的集成
- 依赖注入:Spring到Python有一个端口,由SpringSource维护。但是DI不在Python哲学中。同样的问题也可以通过函数、默认参数和闭包来解决。我们可能会说Pythonic解决方案比Java方式更干净
- 单元/集成测试:非常好的支持,多个测试框架。尽管如此,支持还不如Java好,在Java中我们有大量的测试工具
- 良好的IDE支持:您可以为动态语言提供的支持数量存在技术限制,但至少Eclipse和Netbeans都非常支持Python
- 集群/模块化:集群将通过“无共享基础设施”和/或分布式缓存来解决。据我所知,模块化(在OSGI意义上)没有解决方案。但我要挑战的是,OSGI通常是解决企业中没有的问题的解决方案
- 支持带有缓存和声明性描述的目标关系映射(如JPA、Hibernate等)。是的,看到了吗
- 面向控件的用户界面支持-没有HTML模板,但类似于JSF(RichFaces,Icefaces)或GWT、Vaadin、ZK。没有。django模板在那里,但您可以很容易地添加一些其他视图层
- 组件分解和依赖注入(如EJB或Spring)。不确定,因为我没有使用EJB
- 单元和集成测试。是的,看
- 良好的IDE支持。不错。请参阅eclipse+pydev
- 集群、模块化等(如Terracota、OSGi等)。不知道
- IBM、Oracle等公司(我指的是真正的商业应用程序,而不是Twitter)用it编写了一些成功的应用程序。大多数新闻机构,如洛杉矶时报和华盛顿邮报
- 可能有商业支持。有几个
- 似乎是显而易见的选择。它是迄今为止最稳定和最发达的框架,被广泛使用
因为它是一个Python框架,所以它通常可以使用任何Python模块,以及为Django制作的许多模块
它应该能够满足您的所有需求,而且学习/部署起来并不十分困难。在这种情况下,我在瑞士的一家大型私人银行工作,在J2EE堆栈上编写企业应用程序 Python中有很多“生产就绪”的web框架。还有很多基于Python的大型网站 也就是说,我认为Python对于企业应用程序来说是一个糟糕的选择。它可以用作粘合语言或脚本语言(我们的部署脚本是Python)。对我来说,showsupper是向后兼容(Python3.x与Python2.x不向后兼容)。Python哲学似乎更倾向于创新,使语言更好、更流畅,而不一定支持10年前编写的程序 在Web框架方面,我喜欢Django,但它肯定太年轻了,而且发展太快,无法在企业中使用。我对其他基于Python的框架没有太多经验 如果您想要一个面向企业的框架,就必须使用企业堆栈(Java/.Net) 另一方面,即使在Java世界中,也有一种倾向,即使用不那么进取的框架。认为Spring与EJB2或EJB3的重量比EJB2轻得多。或者想想Flex(在我看来,它远不是一个企业框架)在企业中被越来越多地使用。因此,如果您的企业足够开放,准备好跳入未来,使用Django、RoR或其他现代Web 2.0、社区驱动、开源、下一代、基于活动记录的框架。。。可能没那么长时间 最后,直接回答你的几点:
- 你看过Jython吗?Jython是用于Java虚拟机的Python实现。可以在Jython上运行Django:
以及将Jython和Django与Java EE应用程序服务器一起使用:
如果您还没有明确选择Python,那么您可以看看Groovy,它使用Wicket或Grails作为web应用程序框架。查看…Plone呢?有关更多信息,请访问。在许多企业级应用程序中使用
一些使用Plone的组织:
中情局,联邦调查局,北卡罗来纳州