gpt4 book ai didi

python - 无法在 Flask 中导入 LoginManager()

转载 作者:太空狗 更新时间:2023-10-30 00:55:51 25 4
gpt4 key购买 nike

我在我的应用程序中使用 Flask BluePrint,并且必须有主要部分:1. Admin 和 2. Public。当我尝试将 loginManager 导入我的 views.py 文件时,出现错误 ImportError: cannot import name lm
我的文件夹结构是这样的:

~/LargeApplication
|-- run.py
|-- config.py
|__ /env # Virtual Environment
|__ /app # Application Module
|-- __init__.py
|-- models.py
|-- /admin
|-- __init__.py
|-- views.py
|__ /templates
|-- ..
|__ ..
|__ .

我确实在 __ init__ .py 文件中初始化了 LoginManager()/app/__ init__ .py

from flask.ext.login import LoginManager
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'

当我尝试在/app/admin/views.py 中导入 lm

from app import lm

它会引发 ImportError。

ImportError: cannot import name lm

您能告诉我可能是什么问题吗?

最佳答案

您可能有循环导入。这很好,但您需要考虑到您将使用尚未完成所有顶级指令的模块。

如果你有这样的代码:

from flask.ext.login import LoginManager
from app.admin import admin_blueprint

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'

然后 app.admin 将在 lm = LoginManager() 行执行之前被导入; app.admin 中的任何代码随后尝试访问 app.lm 都会失败。

Move blueprint imports down your module and lm will have been created:

from flask.ext.login import LoginManager

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'

from app.admin import admin_blueprint

参见 Circular Imports note在 Flask 手册的“大型应用程序”文档部分。

关于python - 无法在 Flask 中导入 LoginManager(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com