Насколько я понимаю переменную g в Flask, она должна предоставить мне глобальное место для хранения данных, таких как сохранение текущего пользователя после входа в систему. Правильно ли это?
Я бы хотел, чтобы моя навигация отображала мое имя пользователя после входа в систему через сайт.
Мои представления содержат
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'
В противном случае логин работает нормально. Что мне не хватает?