0

那么是否可以在同一个 Web 应用程序中混合 2 个 ORM,如果可以,它会有多优化?为什么这样?- 我正在使用flask-mysqldb在flask中开发一个网络应用程序,我到了需要实现身份验证系统的地步,而在flask-mysqldb上没有安全的方法可以做到这一点。- 话虽如此,现在我正在尝试实现flask-security,但它仅适用于flask-sqlalchemy,所以我尝试将sqlalchemy与mysqldb混合,在此之前我想知道它是否是最佳的以及它是否有效。那会导致将用户身份验证与 sqlalchemy 和其他数据一起使用到 mysqldb。谢谢!

4

2 回答 2

2

您可以为每个 orm 设置一个模块。一个模块可以称为 auth_db,而另一个模块可以称为 data_db。在您的主应用程序文件中,只需导入两个模块并初始化数据库连接。话虽如此,这种方法在未来将更难维护,其他开发人员也更难理解正在发生的事情。我建议将您的 flask-mysqldb 代码移动到 sqlalchemy,以便您只使用一个 ORM。

于 2017-03-29T16:17:06.533 回答
1

这是可能的,但不推荐。考虑一下:

  • 一半的应用程序不会从适当的 ORM 提供的任何东西中受益
  • 向表中添加字段意味着在许多地方编辑原始 SQL,然后更改模型。
    不要忘记让它们保持同步。

或者,您可以移植使用原始 mysqldb 的所有内容以使用 SQLAlchemy:

  • 需要在表格中添加字段?只需在一处更改模型。
  • 不喜欢 ORM 为您生成的 SQL 查询?您仍然对此具有低级别的控制权。
于 2017-03-29T16:18:14.653 回答