2011-06-01 65 views
4

我有4天休息时间,我将使用这段时间在python web框架中重写我们的RoR(Ruby on Rails)应用程序,以获得乐趣; - ](以及为什么不使用开关,RoR是伟大的,但始终在变化,可以用尽)用于小团队的Python Web框架

我不知道python web框架非常好,我很高兴web.py,django,cherry.py,pylons/pyramid和其他几个。我们的要求是(把一切都可以无关):

  • MVC(严格与否)
  • 小团队(2-3人包括一个设计师)
  • 使用乐趣
  • REST支持
  • 多级缓存(DB查询,页面缓存)
  • Nginx的支持(X-加速重定向文件下载)
  • 交通拥挤(120万〜意见)
  • 的url rewrting(多域不仅支持子域)
  • 不是一个问题,如果它不是炒作
  • 不是一个问题,如果没有插件
  • SQL或NOSQL(可以是有趣的尝试NOSQL)

那么你会建议?

回答

4

我认为大多数大框架都适合您的需求,所以也许您可以从您正在编写的应用程序的角度来看待它。您想“开箱即用”多少工作?你需要用户管理吗?你会需要一个管理面板等

我使用Django,它是伟大的,当你不想重写很多样板。有时试图弯曲它做你想做的事情可能有点乏味,但一旦你头脑发热,它就会错综复杂,你可以很快完成工作。

使用Django反正:

1

我会推荐DJANGO或TurboGears。

+0

这不是一个投票,这是一个答案。你为什么会推荐Django或Turbo Gears? – 2011-06-01 20:40:07

0

我不不要以为你可以在任何主要的Web框架中出错。就我个人而言,我最喜欢使用Django,并且会以这种方式倾斜,ORM非常棒,它的哲学/设计与我个人的偏好密切相关。然而,如果你想要走一条不同的路线,bottle是一个非常有趣的轻量级微型框架,我发现它很高兴与开发。如果你想要走NoSQL路线,MongoDB有很好的Python支持。 PyMongo非常出色(以及Python中推荐使用MongoDB的方式),MongoEngine是一个不错的小ORM(如果你喜欢这种事情)。

0

在你提到的框架中,Django拥有最大的动力,并且最有可能适合你来自Rails背景的理想框架。通过这个,我的意思是它有助手,可以让你快速生成你的表格,尽管没有脚手架。 (事实上​​,Django的方式比Rails中的脚手架稍微好一点,因为你可以使用全部或部分脚本)

它具有很多辅助方法的良好ORM,并且是最好的功能之一,它有一个一旦你定义你的模型,功能齐全的管理界面。即使在网站开发过程中,您也可以开始移植数据。

它还提供了出色的用户支持,包括权限,访问控制,组,用户配置文件。

创建自己的中间件和上下文处理器让您可以将经常重用的块作为插件抽象出来,这很容易(也很有趣)。

Django的唯一特性没有你在上面指定的是NoSQL支持。这只是一半。如果您想为应用程序的某些部分使用非关系数据库(例如会话存储),则可以。如果你想用它作为你的独家后端,你将失去一些Django的超棒功能,除非你用Django补丁django-nonrel

我已经使用了您提到的几个其他选项的组合的涡轮齿轮。该社区有一些伟大的人,但他们目前正在经历一次重大的体系结构改造,并且诚实地说,他们没有像Django那样得到太多的开发者关注。

3

除了提到的其他框架(这些都是很好的选择),你应该检查出web2py。这是一个功能丰富的全栈框架,非常容易设置,学习和使用。它最初是受Ruby on Rails的启发,所以如果你重写一个RoR应用程序,你会发现它比其他一些Python框架更舒服。以下是关于您的要求的一些细节:

该框架是在非常活跃的开发(新版本每2-4周),但致力保持向后兼容性,使现有的应用程序不会在升级突破。如果您有任何问题,您将从友好和敏感的mailing list获得大量帮助。