Python 网络框架 大型项目

4 投票
7 回答
2136 浏览
提问于 2025-04-15 12:17

我需要你们的建议,帮我选择一个适合开发大型项目的Python网页框架:

这个项目的数据库(使用Postgresql)至少会有500张表,大部分表都有复合主键,还有很多约束、索引和查询。刚开始就有大约1500个视图。这个项目属于金融领域,需求总是不断变化。

使用ORM(对象关系映射)会有帮助吗?

7 个回答

5

因为你大部分的表都有复合主键,所以你需要一个支持这种功能的ORM(对象关系映射)。但是,Django默认的ORM不支持复合主键。SQLAlchemy则支持这个功能(http://www.sqlalchemy.org/features.html)。

TurboGears框架使用SQLAlchemy作为默认的ORM,而Pylons也允许你使用SQLAlchemy。

虽然有一些方法可以让Django使用SQLAlchemy,但我自己没有尝试过。我个人更喜欢使用Django,但考虑到你的需求,我建议你选择Pylons或TurboGears,而不是强行把其他ORM塞进系统里。

8

没错,ORM(对象关系映射)对于把SQL的内容转成对象是非常重要的。

你有三种选择:

  1. 使用别人的ORM

  2. 自己做一个ORM

  3. 尝试直接执行底层的SQL查询,然后从结果中挑选出你想要的字段。其实这也是一种ORM,只不过映射的部分分散在应用程序里。虽然这样执行起来可能很快,看起来也容易开发,但维护起来会非常麻烦。

如果你是先设计表格,那么使用任何ORM都会很痛苦。比如说,“复合主键”通常是个坏主意,尤其是在使用ORM的时候,几乎总是个坏主意。你需要一个替代的主键。这样你就可以有你想要的所有复合键和索引,但它们不会是“主键”。

如果你先设计对象,然后再根据这些对象来设计表格,那么使用ORM会很愉快、简单,而且运行速度也会很快。

12

Django被很多大公司使用,比如《华盛顿邮报》等等,它可以很方便地和Postgresql数据库连接。我自己也经常用Django,没遇到过什么问题。

撰写回答