Python导入依赖项


冷月如霜·胡狼
2025-02-15 12:12:04 (3天前)
  1. -RestfulFlask-SqlAlchemy。基本上,我认为由于循环导入我收到错误。我的Widget类依赖于


可视化
</跨度>
上课,反之亦然……

错误消息:

追溯 /visualization.py
?? app/ resources / widget.py
server.py

应用程序/模型/ init.py:



可视化
</跨度>
进口

可视化
</跨度>
作为VisualizationModel
从widget导入Widget作为WidgetModel
来自

2 条回复
  1. 0# 不见你 | 2019-08-31 10-32



    将导入更改为如下所示:




    1. from app import models

    2. </code>


    然后使用

    models.WidgetModel

    /

    models.VisualizationModel

    代替。



    问题是您正在创建一个循环导入依赖项,其中两个文件都要求在处理之前已经处理了另一个文件。通过移动导入整个

    models

    命名空间而不是在导入时尝试导入特定的模型名称,您可以避免导入依赖于完全处理的文件。这样,在尝试调用另一个创建的对象之前,可以完全处理这两个文件。



    但是,在这种情况下,它可能仍然不起作用,因为您试图立即在类定义的一部分中使用导入,该定义在处理时进行评估。





    看起来你正试图定义双向关系 -

    backref

    参数旨在自动执行此操作,而无需在两个模型上指定关系。 (

    backref

    告诉sqlalchemy要添加到哪个字段

    其他

    模型指向链接到它的原始模型)。因此,您可能不需要首先执行这两种导入。



    例如,事实

    Visualization.widget

    定义为

    backref=”visualizations”

    意思是

    Widget.visualizations



    已经存在

    1. - 您不需要显式创建它。



    如果您特别需要的是很多:很多关系,那么您实际想做的事就是机会

    定义多对多关系的关联表



登录 后才能参与评论