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" 处理它?

你需要import current_user.

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())