【问题标题】:SQLAlchemy and django, is it production ready?SQLAlchemy 和 django,准备好生产了吗?
【发布时间】:2010-11-12 08:44:56
【问题描述】:

除了Django的ORM,还有人用过SQLAlchemy吗?

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

有可能吗?

注意:我知道django-sqlalchemy,但该项目似乎还没有准备好生产。

【问题讨论】:

    标签: python database django sqlalchemy


    【解决方案1】:

    我会怎么做,

    1. 在 Django orm 中定义 schema,让它通过 syncdb 写入 db。您将获得管理界面。

    2. 在 view1 中,您需要一个复杂的连接

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

    【讨论】:

      【解决方案2】:

      我认为同时使用两者并不是一个好习惯。您应该:

      1. 使用 Django 的 ORM 并在 Django 的内置 SQL 生成无法满足您的需求时使用自定义 SQL,或者
      2. 使用 SQLAlchemy(以增加复杂性为代价提供更好的控制),如果需要,可以使用 Elixir 等声明层,让生活更轻松。

      当然,如果你需要 Django 的管理员,那么推荐第一种。

      【讨论】:

      • 您能否详细说明为什么同时使用两者不是一个好习惯?
      • 这不是一个硬性规定——在一个系统中拥有两个做同样事情的组件通常是没有意义的。当然,这是可行的。很大程度上取决于它是否是一个爱好应用程序、开发团队的规模等。
      【解决方案3】:

      我以前做过,很好。使用 SQLAlchemy 功能,它可以在架构中读取,因此您不需要两次声明您的字段。

      您可以从设置中获取连接设置,唯一的问题是诸如不同风格的 postgres 驱动程序之类的东西(例如,使用 psyco 和不使用 psyco)。

      这是值得的,因为 SQLAlchemy 的东西对于连接之类的东西要好得多。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 2019 年做到这一点!
        【解决方案5】:

        现在您可以使用Aldjemy。考虑使用这个tutorial

        【讨论】:

          猜你喜欢
          • 2011-07-14
          • 2015-11-08
          • 2017-12-23
          • 2017-01-07
          • 2011-10-21
          • 1970-01-01
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多