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

时间:2017-03-29 16:03:43

标签: python flask flask-sqlalchemy flask-mysql

那么可以在同一个网络应用程序中混合使用2个ORM,如果是这样,它的最佳性能如何?为什么这样? - 我正在使用flask-mysqldb处理烧瓶中的Web应用程序,我来到了需要实现auth系统的地方,并且在flask-mysqldb上没有安全的方法来执行它。 - 有了说,现在我正在尝试实施烧瓶安全,但它只适用于flask-sqlalchemy所以我试图将sqlalchemy与mysqldb混合在一起之前我想知道它是否是最佳的,如果它有效。那将导致使用用户auth沿sqlalchemy和其他数据到mysqldb.Thanks!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

  • 您的应用程序的一半将无法从正确的ORM提供的任何内容中受益
  • 向表中添加字段意味着在许多地方编辑原始SQL,然后更改模型 别忘了让它们保持同步。

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

  • 需要在表格中添加字段吗?只需在一个地方更改模型。
  • 不喜欢ORM为您生成的SQL查询?你仍然可以对此进行低级控制。