html中的if语句(带有jinja2)-我应该在哪里进行编辑以使其起作用?

时间:2018-11-12 05:55:23

标签: python html flask jinja2

更新:session['sid']中有空格,这就是为什么它不起作用的原因!

我正在使用python,flask,jinja2,html。 这是我的html代码的一部分。

    <h1>{{session['sid']}}</h1>                   <!--shows 'admin'-->
    <ul>
        {% if session['sid'] != 'admin' %}
        <li> <a href="/sendmail">SEND MAIL</a> </li>
        <li> <a href="">MAIL BOX</a> </li>
        {% endif %}

session是从python发送到此html的字典类型数据,我再次检查了session['sid']'admin'。但是这些超链接仍然会显示,因此if语句似乎不起作用。在代码中的某处,还有session['sid']!='admin'也不起作用。我用html搜索了if语句示例,但是我仍然不明白我在哪里犯了错误。有人可以让我知道我在这里想念的吗?

我尝试在'周围排除admin或改用{% if equal session['sid'] 'admin'%}

1 个答案:

答案 0 :(得分:2)

我使用template.j2和此数据文件(命名为jinja-cli)测试了您的模板(命名为data.json):

{
    "session": {
        "sid": "admin"
    }
}

命令行:

# pip install jinja-cli
# jinja -d data.json template.j2

结果正确:

<ul>

</ul>

所以我认为模板很好;您可能想在Python代码中转储session来查看flask是否确实正确设置了它; flask.session是代理;在引擎盖下是一个签名的cookie(doc);因此您可能还应该检查Cookie设置;