Flask-security:"current_user" 是从哪里来的?
Flask-security: where does "current_user" comes form?
这很可能是一个愚蠢的问题,但我仍然找不到答案。
Documentation 对于 Flask-Security 说:
If there are only certain times you need to require that your user is logged in, you can do so with:
if not current_user.is_authenticated:
return current_app.login_manager.unauthorized()
但是它没有给出这个 "current_user" 变量从何而来的线索。毫不奇怪,当我尝试在我的应用程序源代码中使用它时,我得到了 "NameError: global name 'current_user' is not defined"。
奇怪的是,当我在 HTML 模板中使用变量时,render_template 函数以某种方式完成而没有错误。
所以,问题是,我如何在我的应用程序中使用 "current_user" 变量,如果我的应用程序不使用,模板引擎如何 "know" 处理它?
from flask_login import current_user
就它的来源而言 - 它来自不同的包,flask-login:
#: A proxy for the current user. If no user is logged in, this will be an
#: anonymous user
current_user = LocalProxy(lambda: _get_user())
这很可能是一个愚蠢的问题,但我仍然找不到答案。
Documentation 对于 Flask-Security 说:
If there are only certain times you need to require that your user is logged in, you can do so with:
if not current_user.is_authenticated:
return current_app.login_manager.unauthorized()
但是它没有给出这个 "current_user" 变量从何而来的线索。毫不奇怪,当我尝试在我的应用程序源代码中使用它时,我得到了 "NameError: global name 'current_user' is not defined"。
奇怪的是,当我在 HTML 模板中使用变量时,render_template 函数以某种方式完成而没有错误。
所以,问题是,我如何在我的应用程序中使用 "current_user" 变量,如果我的应用程序不使用,模板引擎如何 "know" 处理它?
from flask_login import current_user
就它的来源而言 - 它来自不同的包,flask-login:
#: A proxy for the current user. If no user is logged in, this will be an
#: anonymous user
current_user = LocalProxy(lambda: _get_user())