据我了解 Flask 中的 g 变量,它应该为我提供一个全局位置来存储数据,例如在登录后保存当前用户。这个对吗?
我希望我的导航在整个站点上显示我的用户名,一旦登录。
我的观点包含
from Flask import g #among other things
在登录期间,我分配
user = User.query.filter_by(username = form.username.data).first()
if validate(user):
session['logged_in'] = True
g.user = user
我似乎无法访问 g.user。相反,当我的 base.html 模板具有以下内容时...
<ul class="nav">
{% if session['logged_in'] %}
<li class="inactive">logged in as {{ g.user.username }}</li>
{% endif %}
</ul>
我得到错误:
jinja2.exceptions.UndefinedError
UndefinedError: 'flask.ctx._RequestGlobals object' has no attribute 'user'
否则登录工作正常。我错过了什么?