用Flask蓝图解决此循环导入错误的正确方法是什么?

用Flask蓝图解决此循环导入错误的正确方法是什么?,第1张

用Flask蓝图解决此循环导入错误的正确方法是什么?

您的代码中有一个循环导入。基于回溯:

  1. app.py
    确实
    from views import site
  2. views.py
    确实
    from models import User
  3. models.py
    确实
    from database_setup import db
  4. database_setup.py
    确实
    from app import app
  5. app.py
    确实
    from views import site

根据这些事件的顺序,

app.py
您所发布的不是真正导致您的问题的事件。目前,
app
尚未在
views
导入之前进行定义,因此当进一步尝试获取时
app
,它尚不可用。

您需要重组项目,以便 定义 之后

app
导入所有依赖项。从您的问题看来,您似乎认为自己确实做到了,但是也许您上面仍然遗漏了一个重要内容。
__
app``app


可能不相关,但是您目前不鼓励使用“相对”导入。

from views import site
您应该执行绝对路径:
from app.viewsimport site
或相对路径:,而不是执行其他 *** 作
from .views import site


要回答最初的问题“使用

__main__
蓝图导入是个好主意吗?”,不是。这样做的问题是, 在直接运行模块 时才
执行
__main__
防护。当您使用uWSGI或Gunicorn等真实的应用服务器进行部署时,不会导入或注册任何蓝图。 __



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存