【发布时间】:2017-06-20 03:57:30
【问题描述】:
我需要手动将会话变量从 Flask 传递到我的 HTML 还是以某种方式自动发送?
可以吗
return render_template('index.html')
并访问会话变量username,例如HTML文件中的{{session['username'}}?
【问题讨论】:
我需要手动将会话变量从 Flask 传递到我的 HTML 还是以某种方式自动发送?
可以吗
return render_template('index.html')
并访问会话变量username,例如HTML文件中的{{session['username'}}?
【问题讨论】:
@bpb101 在 Jinja2 格式上是正确的(尽管像其他人提到的那样省略了空格)。在 HTML/Jinja2 模板中,您可以简单地调用 session 字典而不将其传递给模板:
{{ session['username'] }}
但是,在 Python 代码中的另一个示例实际上会用字符串 'username' 覆盖 session['username'] 的值,这是由于变量分配。如果您尝试将变量设置为 session['username'] 的值,您将使用:
username = session['username']
否则,如果您只是出于其他原因需要测试或使用该值,您可以直接访问它,例如:
if session['username'] == some_value:
return "The username is", session['username']
希望这对刚接触 Flask 或 Jinja2 的人有所帮助,他们可能想知道为什么他们的会话变量会被覆盖。
【讨论】:
如果您想使用会话隔离 HTML 的某些部分,您可以直接在这些元素上调用会话:
{% if session['username'] %}
<li>Logout</li>
{% endif %}
【讨论】:
在python中
session['username'] = 'username'
在jinja2你可以去
{{session['username']}}
【讨论】:
{{ session['username'] }}(加空格)
set session['username'] = 'username' 在模板中?
session.logged_in。参考:flask.pocoo.org/docs/0.12/tutorial/templates