python - 使用蓝图时 Flask Sqlalchemy 循环导入

标签 python flask sqlalchemy flask-sqlalchemy

我有一个 Flask 应用程序,它的包使用蓝图相互分离。 我有 3 个包,它们具有多对一的关系。

第一个包(蓝图)是身份验证(包含 User_Model):

from Billboard.Apps.models import Android_Model
from Billboard.Survey.models import Survey_Model

class User_Model (db.Model, UserMixin):
    __tablename__ = user_model
    ...
    advertised_apps = db.relationship ('Android_Model' , backref = 'user_model' , lazy = True)
    advertised_surveys = db.relationship ('Survey_Model' , backref = 'user_model' , lazy = True)

第二个包有我的 User_Model 的外键:

from Billboard.Authentication.models import User_Model

class Survey_Model (db.Model):
    __tablename__ = 'survey_model'
    ...
    advertiser_id = db.Column(db.Integer, db.ForeignKey('user_model.id'), nullable=False)

第三个包的型号与第二个相同。

当我运行我的 Flask 应用程序时,我遇到了一些导入错误,我知道它们用于这些模型之间的循环导入。

注意:当我删除这些模型之间的这种关系时,我没有收到错误并且项目正常工作。

有什么办法可以解决吗?

最佳答案

您实际上不需要导入模型来声明与它的关系。请注意,db.relationship 采用字符串作为第一个参数,而不是类。

关于python - 使用蓝图时 Flask Sqlalchemy 循环导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53613955/

相关文章:

在 python 2.4 中模拟 itertools.product 的 Pythonic 方法

python - 如何在路由的装饰器中捕获错误并使用 JSON 响应进行响应

python - 移动设备上 Flask API 的用户身份验证

python - flask 、 react 和 Docker : Non-Zero Codes

python - 在 sqlalchemy 中,有没有一种方法可以让空单元格位于末尾,而不管排序顺序如何?

python - 从日期时间获取一年中的小时

javascript - 在 python 中调用 javascript?

python - 获取范围内随机数选择中整数出现次数 N 次

python - 使用 python 而不是 flask run 运行 flask 应用程序

python - 如何在 sqlalchemy 中提交之前应用列默认值