小团队的Python Web框架

3 投票
5 回答
1160 浏览
提问于 2025-04-16 18:47

我有四天的假期,打算利用这段时间把我们的Ruby on Rails应用程序用Python的网络框架重写,纯粹是为了好玩;而且为什么不换呢?Ruby on Rails很好,但总是变化,真的有点累。

我对Python的网络框架了解不多,知道一些像web.py、django、cherry.py、pylons/pyramid等。我们的需求是(可以不太相关):

  • MVC(严格或不严格都可以)
  • 小团队(2-3人,包括一个设计师)
  • 使用起来有趣
  • 支持REST
  • 多级缓存(数据库查询、页面缓存)
  • 支持Nginx(X-Accel-Redirect文件下载)
  • 需要处理大量流量(大约120万次浏览)
  • 支持URL重写(支持多个域名,不仅仅是子域名)
  • 如果不流行也没关系
  • 如果没有插件也没关系
  • 可以使用SQL或NOSQL(尝试NOSQL可能会很有趣)

那么你有什么建议呢?

5 个回答

1

我推荐使用DJANGO或者TurboGears。

3

除了之前提到的那些框架(它们都是不错的选择),你还应该看看web2py。这个框架功能丰富,属于全栈框架,设置、学习和使用都非常简单。它最初是受到Ruby on Rails的启发,所以如果你在重写一个RoR应用,可能会觉得用它比其他一些Python框架更顺手。下面是一些关于你需求的详细信息:

这个框架正在积极开发中(每2到4周就会有新版本),而且承诺保持向后兼容,这样现有的应用在升级时不会出问题。如果你有任何问题,可以在友好且反应迅速的邮件列表上获得很多帮助。

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次浏览)

    是的 > Django能扩展吗?

  • URL重写(支持多个域名,不仅仅是子域名)

    不太确定这一点

  • 如果没有热度也没问题

    虽然不如node-js流行,但确实有很多很好的文档

  • 如果没有插件也没问题

    有的……天哪,真的是有很多

  • 支持SQL或NOSQL(尝试NOSQL可能很有趣)

    开箱即用支持SQL,但也支持NOSQL > http://www.allbuttonspressed.com/projects/django-nonrel

撰写回答