SQLAlchemy和django,生产准备好了吗?

Pio*_*pla 23 python database django sqlalchemy

SQLAlchemy除了DjangoORM 之外还有人使用过吗?

我想使用Django的ORM进行对象操作,使用SQLalchemy进行复杂查询(比如那些需要左外连接的查询).

可能吗?

注意:我知道django-sqlalchemy但该项目似乎没有生产就绪.

agi*_*liq 18

我会怎么做

  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, ...)


Vin*_*jip 7

我不认为使用两者都是好习惯.你应该:

  1. 使用Django的ORM并使用自定义SQL,其中Django的内置SQL生成不能满足您的需求,或者
  2. 使用SQLAlchemy(以更复杂的代价为您提供更好的控制),并且如果需要,使用Elixir等声明层来使生活更轻松.

当然,如果您需要Django的管理员,那么建议采用这些方法中的第一种.

  • 这不是一个硬性规则 - 在系统中有两个组件做同样的事情通常没有意义.当然,这是可行的.很大程度上取决于它是一个业余爱好应用程序,开发团队的规模等. (5认同)
  • 你能详细说明为什么使用两者都不是一个好习惯吗? (2认同)

Stu*_*xon 7

我以前做过,没关系.使用SQLAlchemy功能,它可以在架构中读取,因此您不需要两次声明字段.

你可以从设置中获取连接设置,唯一的问题是像postgres驱动程序的不同风格(例如psyco和没有).

这是值得的,因为SQLAlchemy的东西对于像连接这样的东西来说更好.


小智 5

Jacob Kaplan-Moss 承认有时会输入“import sqlalchemy”。我可能会在不久的将来为 sqlalchemy 结果编写一个查询集适配器。