SQLAlchemy和Django,是否适合生产环境?

26 投票
5 回答
13577 浏览
提问于 2025-04-15 13:01

有没有人用过 SQLAlchemyDjango 的 ORM 一起?

我想用 Django 的 ORM 来处理对象,而用 SQLAlchemy 来做一些复杂的查询(比如需要左外连接的查询)。

这样做可以吗?

注意:我知道 django-sqlalchemy,但这个项目看起来还不够成熟,不能用于生产环境。

相关问题:

5 个回答

8

我之前做过这个,没问题。可以使用SQLAlchemy的功能,它可以读取数据库的结构,这样你就不需要重复声明你的字段了。

你可以从设置中获取连接的配置,唯一的问题是像不同版本的Postgres驱动(比如有psycopg和没有的)这些细节。

这样做是值得的,因为SQLAlchemy在处理像连接表这样的操作时,使用起来要舒服得多。

8

我觉得同时使用这两种方法并不好。你应该选择其中一种:

  1. 使用Django自带的ORM(对象关系映射),在Django生成的SQL满足不了你需求的时候,再用自定义的SQL;或者
  2. 使用SQLAlchemy(这个可以让你更精细地控制,但会增加一些复杂性)。

当然,如果你需要Django的后台管理功能,那么推荐你选择第一种方法。

20

我会这样做:

  1. 先在Django的ORM里定义好数据库的结构,然后通过syncdb让它写入数据库。这样你就能得到一个管理界面。

  2. 在view1里,你需要做一个复杂的连接查询。


    def view1(request):
       import sqlalchemy
       data = sqlalchemy.complex_join_magic(...)
       ...
       payload = {'data': data, ...}
       return render_to_response('template', payload, ...)

撰写回答