Jinja2中不同名称的Session变量的可访问性

时间:2019-03-23 03:04:35

标签: python session flask jinja2

我想为登录的人和在Flask中注销的人显示不同的标题。我可以直接在jija2模板中使用会话变量。

自从以来,我使用了其他名称的会话,另一个用于sqlalchamy会话的会话变量名称。

from flask import session as usersession

我尝试访问usersession变量,但这是未定义的。但是当我使用session['username']时,我可以访问会话变量。

当我从usersession弹出时,它还没有从会话中弹出。 tamplete中访问的会话仍然具有username变量

usersession.pop('email', None)
usersession.pop('type', None)


jinja2.exceptions.UndefinedError: 'usersession' is undefined

我的代码在下面。

{% if usersession['username'] is not  none %}
     {% include "store/headers/loginheader.html" %}
{% else %}
     {% include "store/headers/logoutheader.html" %}
{% endif %}

1 个答案:

答案 0 :(得分:0)

在您的视图功能中,尝试usersession[‘username’] = ‘username

在模板中:

{{ usersession[‘username’] }}

对于sessions,请确保您已正确设置环境以能够访问会话(即密钥)。

也请查看flask-login,因为其“ current_user”对象具有强大的功能,可能正是您要寻找的