【发布时间】:2011-10-07 23:21:42
【问题描述】:
我正在构建一个 django 应用程序。使用 SQLAlchemy 作为 ORM 为用户保存采购订单等数据。但是想为会话中间件使用 django ORM。
同时使用这两个 ORM 组件是一个糟糕的设计决定吗?
如果我应该只使用一个 ORM ,我应该使用哪一个。
谢谢 J
【问题讨论】:
标签: sqlalchemy django-orm
我正在构建一个 django 应用程序。使用 SQLAlchemy 作为 ORM 为用户保存采购订单等数据。但是想为会话中间件使用 django ORM。
同时使用这两个 ORM 组件是一个糟糕的设计决定吗?
如果我应该只使用一个 ORM ,我应该使用哪一个。
谢谢 J
【问题讨论】:
标签: sqlalchemy django-orm
如果您使用 Django,您可能会选择它,因为您觉得与其他 Python Web 框架相比,它为您提供了项目所需的更多功能。如果您将 SQLAlchemy 与 Django 一起使用,您将失去 Django 为您提供的很多东西(例如与表单库的搭配、大量 django 应用程序等)
另外,我不建议同时使用两者。这不是不可能的事情,但我只是看不出强迫自己在两个完全不同的 API 之间来回来回做同样的事情的好处。
【讨论】:
我在使用这两种方法时都没有遇到任何问题。我使用 Django 的模型处理会话数据和用户身份验证,使用 SQLAlchemy 处理我的应用程序使用的数据库。
我发现 SQLAlchemy 更易于使用。然而:
否则 - 如果您的 SQLAlchemy 表与 Django 是分开的,并且不需要安全性、表单生成或直接访问 Django 表,那么它工作得很好。我不使用 Django 的表单,所以除了我的会话和用户数据之外的大部分内容都在 SQLAlchemy 中。
如果您只能使用一个,请使用 Django ORM,否则您会失去 Django 内置的许多功能,而您还不如使用另一个框架,例如 pylons。
【讨论】: