2

我来自 java world (apache wicket),需要为我的项目使用 python。

我听说过Turbogear2Pyramid (Pylons) 或Django并阅读了一些关于它们的信息。我的第一选择是建立在 Pylons 之上的 TurboGears2,工具已经打包,但也许有人可以提供一些建议。

我不需要创建很多内容,例如 wiki 或博客,而是代表并授予对我数据库中某些对象的访问权限,然后构建一个 javascript 界面来处理这些数据。

我需要网络框架为我做的事情:

  • 具有角色(管理员、用户、组...)的身份验证系统
  • 在应用程序之外使用增强的 javascript 工具(如dojo),但如果我可以在应用程序和 javascript 库之间共享组件会很好。
  • 简单的AJAX:组件必须刷新“onChange”(我不喜欢提交按钮)
  • 一个好的ORM。不知道SQLAlchemy,但它看起来不错,将对象映射到/从数据库、数据库池......
  • 易于部署(来自java,我认为没问题;))
  • 轻松添加 css 或 js 到页面
  • 一个不会破坏我神经的框架;)
  • 良好的文档和/或良好的支持

  • 线程/多进程支持(有很多计算。其中一些占用大量内存,另一些占用处理时间。所以我希望能够从应用程序中启动进程。但我认为这更多的是使用 python 库 和这个问题无关?)

谢谢

4

4 回答 4

5

对我自己来说,Pyramid 中的 mako + sqlalchemy 是达成交易的关键。如果你从事一些体面的数据库工作,SqlAlchemy 是最好的选择。我也是 mako 模板的忠实粉丝。在 mako 本身中创建可重用的表示类型函数的能力与尝试在您最终尝试导入的 Python 模块中执行操作的能力在我的书中是一个加分项。

我真正想说的是,对于您的最后一项,您应该真正考虑通过使用消息队列和诸如Celery之类的东西来将这些东西提供给外部工作人员来完成工作,并更多地使用网络应用程序来提交/结果显示而不是实际上试图将工作从您的 Web 应用程序中分离出来。

于 2011-07-14T11:47:04.013 回答
1

正如 S.Lott 在他的评论中指出的那样,您的要求并没有给出明确的“赢家”,因为至少大多数框架都具有这种能力。

IMO 是 Python Web 框架差异更大的三个维度:

  • 接近“pythonic”的概念
  • 亮度
  • 高架

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

也就是说,我相信您的回答有 95% 取决于个人喜好。

于 2011-07-14T11:14:01.203 回答
1

除了您提到的框架之外,您绝对应该查看web2py。我认为您会发现它是最容易设置、学习和使用的工具之一,特别是考虑到它提供的广泛功能。如果它的主要目标是不“破坏你的神经”。它包括一个优秀的认证系统;集成Javascript/AJAX支持(另见组件);一个快速而强大的数据库抽象层网络服务自动 RESTful API 生成;很棒的文档;以及一个非常有用且响应迅速的邮件列表. 开发非常活跃,至少每个月都会发布新版本(不会破坏向后兼容性)。这是最近的一个演示文稿

于 2011-07-15T02:05:22.950 回答
0

一个意见...

我喜欢 Pylons(现在被 Pyramid 取代)的特性以及 Django 框架对新举措的广泛支持(尽管它不热衷于重新发明这么多轮子——尤其是 MVC)。

我喜欢Web2py中的数据抽象层,它可以部署到 Google 的 AppEngine。这是我做出决定的一个关键特征。Web2py 是受 RoR 启发的,有些人可能会推卸责任,但我对此表示赞赏,并且到目前为止还没有阻碍任何开发路径。

最后尝试了几个框架,我使用了 Web2py(使用官方书籍作为参考)。一个很棒的社区,响应速度非常快。

于 2011-07-14T12:19:39.080 回答