我休息了4天,我将利用这段时间在python web框架中重写我们的RoR(Ruby on Rails)应用程序,只是为了好玩; - ](为什么不进行切换,RoR很棒,但不断改变所有时间,可能会筋疲力尽。)
我不太了解python web框架,我很高兴web.py,django,cherry.py,pylons / pyramid等等。我们的要求是(把一切都变得无关紧要):
那么你会建议什么?
答案 0 :(得分:4)
我认为大多数大框架都符合您的要求,所以也许您可能会从您正在编写的应用程序的角度来看待它。你想要“开箱即用”工作多少钱。你需要用户管理吗?你需要一个管理面板等吗?
我使用Django,当你不想重写很多样板时它很棒。有时候尝试弯曲它来做你想做的事情可能有点乏味,但是一旦你了解它的错综复杂,你就可以很快完成任务。
无论如何使用Django:
MVC(严格与否)
不是MVC,但类似> http://www.djangobook.com/en/2.0/chapter05/#cn16
小团队(2-3人包括一名设计师)
不确定框架将如何影响这一点,但是,可以通过版本控制自行开发或与团队一起开发
使用乐趣
那里有很多很棒的文档,所以花更少的时间把你的头发拉出来,而且你可以很快地走得很好
REST支持
是的,作为图书馆:> https://bitbucket.org/jesperndjjango-piston/wiki/Home
多级缓存(数据库查询,页面缓存)
是的> https://docs.djangoproject.com/en/dev/topics/cache/?from=olddocs
Nginx支持(X-Accel-Redirect文件下载)
再次,不确定这是否相关,但是是的。我使用nginx和UWSGI,它很快
交通繁忙(1,200,000次观看次数)
是> Does Django scale?
网址重写(多域支持不仅仅是子域名)
对此不确定
如果不是炒作就不成问题
这不是node-js,但是很多非常好的文档
如果没有插件,则不成问题
有......我的上帝有
SQL或NOSQL(尝试NOSQL很有趣)
SQL开箱即用,但支持NOSQL > http://www.allbuttonspressed.com/projects/django-nonrel
答案 1 :(得分:3)
除了提到的其他框架(这些都是不错的选项)之外,您应该查看web2py。它是一个功能丰富的全栈框架,非常易于设置,学习和使用。它最初的灵感来自Ruby on Rails,所以如果你重写一个RoR应用程序,你会发现它比其他一些Python框架更舒服。以下是有关您的要求的一些细节:
该框架处于非常活跃的开发阶段(每2-4周发布一次新版本),但致力于保持向后兼容性,因此现有应用程序不会在升级时中断。如果您有任何疑问,可以从友好且反应迅速的mailing list获得大量帮助。
答案 2 :(得分:1)
我会推荐DJANGO或TurboGears。
答案 3 :(得分:0)
我认为任何主要的Web框架都不会出错。就我个人而言,我最常使用Django并且倾向于那种方式,ORM非常棒,它的哲学/设计与我个人的偏好紧密相关。但是,如果你想走另一条路线,bottle是一个非常有趣的轻量级微框架,我发现很高兴与之合作。如果你想使用NoSQL路由,MongoDB可以提供很好的Python支持。 PyMongo非常出色(以及从Python使用MongoDB的推荐方法),MongoEngine是一个很好的小ORM(如果你关心那种东西)。
答案 4 :(得分:0)
在你提到的框架中,Django拥有最强劲的势头,最有可能符合你的Rails背景框架的理想。我的意思是它有助手,你可以快速生成你的表格,虽然没有脚手架。 (事实上,Django的方式比Rails中的脚手架好一点,因为你可以使用它的全部或部分)
它具有良好的ORM和许多辅助方法,并且是最好的功能之一,它在您定义模型后具有功能齐全的管理界面。即使在开发网站时,您也可以开始移植数据。
它还提供出色的用户支持,包括权限,访问控制,组,用户配置文件。
创建自己的中间件和上下文处理器很容易(也很有趣),这些处理器允许您将经常重用的部分抽象为框架的插件。
Django没有你上面指定的唯一功能是NoSQL支持。这只是一半的事实。如果您想为应用程序的某些部分使用非关系数据库,例如会话存储,则可以。如果你想将它作为你的专属后端使用,除非你用django-nonrel修补Django,否则你将丢失一些Django的强大功能。
我使用过涡轮齿轮,这是你提到的其他几种选择的组合。该社区有一些很棒的人,但他们目前正在经历一次重大的架构改造,老实说,他们只是没有像Django那样得到开发人员的关注。