2011-07-14 33 views
2

我来自java世界(apache wicket),需要为我的项目使用python。什么网页框架可供选择

我听说过Turbogear2,Pyramid(Pylons)或Django并阅读了一些关于它们的内容。 我的第一选择是建立在Pylons之上的TurboGears2,工具已经打包,但也许有人作为一些建议 。

我并不需要创建很多像维基或博客内容,但表示和 提供访问我的数据库中的一些对象,然后生成一个javascript接口 对这个数据进行工作。

我需要的网络架构,为我:与角色

  • 认证系统(管理员,用户,组,...)
  • 使用增强的JavaScript工具,如dojo应用程序外,但是 如果我可以在应用程序和JavaScript库之间共享组件,那就太好了。
  • easy AJAX:组件必须刷新'onChange'(我不喜欢提交按钮)
  • 一个很好的ORM。不知道SQLAlchemy但似乎不错,映射对象到/从数据库,数据库池,...
  • 轻松部署(从Java,我认为这将是确定未来;))
  • 轻松添加CSS或JS到
  • 一个框架,不要伤我的神经网页;)
  • 良好的文档和/或良好的支持

  • 线程/多进程的支持(也有大量的计算有些人冒着巨大。记忆力,其他一些采取 处理时间。所以我想能够推出pr从应用程序中溢出。但我认为这更多关于using a python library 而与此问题无关? )

THX

+2

所有的框架都这样做。我们无法提供更多的帮助,超越您已经完成的工作。我们能做的最好的事情就是给你投掷一枚硬币。元首。 –

回答

1

正如美国洛特在他的评论中指出的那样,你的要求不给一个明确的“赢家”至少框架的有本事。

三个维度沿着该蟒Web框架发散更是IMO:

  • 贴近于 “Python的”
  • 亮度
  • 开销的概念

通常打火机框架将:需要更多的开销和pythonic方法(webpy,cherrypy ...),而较重的框架(django,turbogear ...)可让您在几分钟内启动并运行应用程序但会以某种方式迫使你以某种(合乎逻辑但不一定是pythonic)的方式来塑造你的代码。

这就是说,我相信95%的答案依赖于个人喜好。

HTH!

6

对于我自己来说,金字塔中的mako + sqlalchemy是这笔交易的最终成果。如果你进入一些体面的数据库工作,SqlAlchemy只是最好的工作。我也是mako模板的忠实粉丝。在本书中,能够在mako本身中创建可重用的演示文稿类型函数,并尝试在最终尝试导入的python模块中执行某些操作。

我真正想提到的是,对于您的最终产品,您应该通过使用消息队列和Celery之类的东西来完成工作并使用更多Web应用来提交/结果显示比实际尝试将工作分离出Web应用程序。

+0

尽管我没有反对SqlAlchemy(它肯定享有大量的用户基础),但我认为这种说法“只是最好的合作”实际上更像是个人意见而非事实。首先,我更喜欢Canonical的[风暴](https://storm.canonical.com/),这并没有那么多......炼金术!它在工作中更加透明,更轻,更快,并让您更好地控制数据库。 (我并不是说它绝对更好,我只是声称它不同于SqlAlchemy,对于大部分_my_工作 - 这是比SqlAlchemy更好的解决方案... – mac

+1

当然,但是在使用Django ORM之后,风暴,因为我是一个Ubuntu规范的粉丝,并检查了一些启动板的代码库,我发现SqlAlchemy是最好的工作。它分解为原始sql比其他人慢得多,当你试图编写一个有点胜利这是后端不可知的应用程序。 – Rick

0

的舆论一片......

我喜欢塔的字符(现在金字塔代替)和Django框架的广泛支持的新举措(尽管不是其keeness重塑这么多轮 - ESP。 MVC)。

我喜欢Web2py中的数据抽象层,可以部署到Google的AppEngine。这是做出我的决定的一个关键特征。 Web2py是RoR的灵感,有些人可能会推卸责任,但我已经赞赏并且迄今为止还没有阻止任何发展道路。

最后,我尝试了几个框架,我使用了Web2py(使用offical book作为参考)。 A great community,响应速度非常快。

1

除了你提到的框架,你一定要看看web2py。我认为你会发现它是最容易设置,学习和使用的,尤其是考虑到它提供的功能的广泛性。其中一个如果它的primary goals是不“打破你的神经”。它包括一个很好的authentication system;集成Javascript/AJAX支持(另请参阅components);快速而强大的database abstraction layer; web services; automatic RESTful API generation;很棒documentation;和一个非常有帮助和响应mailing list。开发非常活跃,至少每个月都有新版本发布(从未破坏向后兼容性)。这是最近的presentation

相关问题