SQLAlchemy和Django,是否适合生产环境?
有没有人用过 SQLAlchemy 和 Django 的 ORM 一起?
我想用 Django 的 ORM 来处理对象,而用 SQLAlchemy 来做一些复杂的查询(比如需要左外连接的查询)。
这样做可以吗?
注意:我知道 django-sqlalchemy,但这个项目看起来还不够成熟,不能用于生产环境。
相关问题:
5 个回答
8
我之前做过这个,没问题。可以使用SQLAlchemy的功能,它可以读取数据库的结构,这样你就不需要重复声明你的字段了。
你可以从设置中获取连接的配置,唯一的问题是像不同版本的Postgres驱动(比如有psycopg和没有的)这些细节。
这样做是值得的,因为SQLAlchemy在处理像连接表这样的操作时,使用起来要舒服得多。
8
我觉得同时使用这两种方法并不好。你应该选择其中一种:
- 使用Django自带的ORM(对象关系映射),在Django生成的SQL满足不了你需求的时候,再用自定义的SQL;或者
- 使用SQLAlchemy(这个可以让你更精细地控制,但会增加一些复杂性)。
当然,如果你需要Django的后台管理功能,那么推荐你选择第一种方法。
20
我会这样做:
先在Django的ORM里定义好数据库的结构,然后通过syncdb让它写入数据库。这样你就能得到一个管理界面。
在view1里,你需要做一个复杂的连接查询。
def view1(request):
import sqlalchemy
data = sqlalchemy.complex_join_magic(...)
...
payload = {'data': data, ...}
return render_to_response('template', payload, ...)