我有一个login_required弃用的函数,用于管理页面访问。
我的整个Flask项目均采用蓝图结构。只有主要内容在app.py中。因此,我已将loqin_requiered函数放到app.py中,现在想在我的蓝图文件中使用它。
app.py
from blueprint1 import blueprint_function1
app.register_blueprint(blueprint_function1)
def login_required(f):
@wraps(f)
def decorated_function(*args, **kwargs):
if "logged_in" in session:
return f(*args, **kwargs)
else:
flash("Bu Sayfayi görüntülemek icin lütfen giris yapin", category="danger")
return redirect(url_for("login"))
return decorated_function
在我的blueprint1.py中,我执行以下操作:
from app import loqin_required
然后出现以下错误:ImportError:无法导入名称“ blueprint_function1”
如何在其他文件中使用此修饰器?
您导入blueprint1.py中必需的login _ ::>
from app import login_required
现在您还可以在app.py中导入blueprint1:
from blueprint1 import blueprint_function1
这两个模块相互导入,将导致Python Circular Dependency。
要解决此问题,您只需创建一个新模块来存储您的装饰器。例如,除了app.py之外,创建一个decorators.py
模块。然后在blueprint1.py中更改import语句:
from decorators import login_required