Python中是否有一个可用于生产的web应用程序框架?

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

我听到了很多关于Python语言的好意见。他们说它是成熟的,富有表现力的等等。。。我正在寻找Python中支持生产的企业应用程序框架。我所说的“生产就绪”是指:

  • 支持带有缓存和声明性描述的目标关系映射(如JPA、Hibernate等)
  • 面向控件的用户界面支持-没有HTML模板,但类似于JSF(RichFaces,Icefaces)或GWT、Vaadin、ZK
  • 组件分解和依赖注入(如EJB或Spring)
  • 单元和集成测试
  • 良好的IDE支持
  • 集群、模块化等(如Terracota、OSGi等)
  • IBM、Oracle等公司用it编写了一些成功的应用程序(我指的是真正的商业应用程序,而不是Twitter)
  • 可以得到商业支持
在Python世界中,这有可能吗?或者只有以下几种选择:

  • 使用Python并从底部编写所有内容(太昂贵)
  • 坚持使用JavaEE
  • 购买.NET堆栈
    • 似乎是显而易见的选择。它是迄今为止最稳定和最发达的框架,被广泛使用

      因为它是一个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、社区驱动、开源、下一代、基于活动记录的框架。。。可能没那么长时间

      最后,直接回答你的几点:

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

      如前所述,django可能是最稳定的python web应用程序框架。依次回答您的问题:

      • 支持带有缓存和声明性描述的目标关系映射(如JPA、Hibernate等)。是的,看到了吗
      • 面向控件的用户界面支持-没有HTML模板,但类似于JSF(RichFaces,Icefaces)或GWT、Vaadin、ZK。没有。django模板在那里,但您可以很容易地添加一些其他视图层
      • 组件分解和依赖注入(如EJB或Spring)。不确定,因为我没有使用EJB
      • 单元和集成测试。是的,看
      • 良好的IDE支持。不错。请参阅eclipse+pydev
      • 集群、模块化等(如Terracota、OSGi等)。不知道
      • IBM、Oracle等公司(我指的是真正的商业应用程序,而不是Twitter)用it编写了一些成功的应用程序。大多数新闻机构,如洛杉矶时报和华盛顿邮报
      • 可能有商业支持。有几个

        • 你看过Jython吗?Jython是用于Java虚拟机的Python实现。可以在Jython上运行Django: 以及将Jython和Django与Java EE应用程序服务器一起使用:

          如果您还没有明确选择Python,那么您可以看看Groovy,它使用Wicket或Grails作为web应用程序框架。

          查看…

          Plone呢?有关更多信息,请访问。在许多企业级应用程序中使用

          一些使用Plone的组织:

          中情局,联邦调查局,北卡罗来纳州