Python 是否可以在同一个web应用程序中混合使用2个ORM?

Python 是否可以在同一个web应用程序中混合使用2个ORM?,python,flask,flask-sqlalchemy,flask-mysql,Python,Flask,Flask Sqlalchemy,Flask Mysql,那么,是否有可能在同一个web应用程序中混合使用2个ORM,如果是这样的话,它的最佳性能如何?为什么会这样? -我正在使用flask mysqldb在flask中开发一个web应用程序,我需要实现一个身份验证系统,但在flask mysqldb上没有安全的方法来实现它。 -话虽如此,我现在正试图实现flask安全性,但它只对flask sqlalchemy有效,所以我尝试将sqlalchemy与mysqldb混合使用,在此之前,我想知道它是否最优,是否有效。这将导致在sqlalchemy和mys

那么,是否有可能在同一个web应用程序中混合使用2个ORM,如果是这样的话,它的最佳性能如何?为什么会这样? -我正在使用flask mysqldb在flask中开发一个web应用程序,我需要实现一个身份验证系统,但在flask mysqldb上没有安全的方法来实现它。
-话虽如此,我现在正试图实现flask安全性,但它只对flask sqlalchemy有效,所以我尝试将sqlalchemy与mysqldb混合使用,在此之前,我想知道它是否最优,是否有效。这将导致在sqlalchemy和mysqldb的其他数据中使用用户身份验证。谢谢

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

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

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

  • 你的应用程序的一半不会从适当的ORM提供的任何东西中受益
  • 向表中添加字段意味着在许多地方编辑原始SQL,然后更改模型。
    别忘了保持它们的同步
或者,您可以将使用原始mysqldb的所有内容移植到SQLAlchemy:

  • 需要向表中添加字段吗?只需在一个地方更改模型
  • 不喜欢ORM为您生成的SQL查询吗?你仍然有一个低级的控制权

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

      • 你的应用程序的一半不会从适当的ORM提供的任何东西中受益
      • 向表中添加字段意味着在许多地方编辑原始SQL,然后更改模型。
        别忘了保持它们的同步
      或者,您可以将使用原始mysqldb的所有内容移植到SQLAlchemy:

      • 需要向表中添加字段吗?只需在一个地方更改模型
      • 不喜欢ORM为您生成的SQL查询吗?你仍然有一个低级的控制权

      只需添加到您的答案中—如果您确实需要低级数据库查询,则有SqlAlchemy Core—提供低级sql支持。只需添加到您的答案中—如果您确实需要低级数据库查询,则有SqlAlchemy Core—提供低级sql支持。