是否可以在同一个网络应用程序中混合 2 个 ORMS



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

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

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

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

或者,您可以将使用原始 mysqldb 的所有内容移植到 SQL 上

  • 需要向表中添加字段?只需在一个地方更改模型即可。
  • 不喜欢ORM为您生成的SQL查询?您对此仍具有低级别的控制。

最新更新