在Flask html页面中检查可变条件

时间:2015-08-02 09:55:42

标签: flask jinja2

我有一个接收json数据的Flask应用程序。这是在views.py中定义的json格式。

Values = [
    {
        'Count':0,
        'RPM':0,
        'ECT':0
    },
    {
        'Count':1,
        'RPM':1,
        'ECT':1
    }
]

每个更新json数据也作为参数

传递给html
@app.route("/members")
def members():
    return render_template("members.html",VALS=Values)

在html页面中,json数据被视为

{% for VAL in VALS %}            
    {% if (VAL['ECT'] > 251) %}
        <h1>  -> RPM:,ECT:{{VAL.ECT}} <button type="button" class="btn  btn-danger btn-sm">High</button> </h1>
    {% else %}
        <p> {{VAL.Count}} -> RPM:{{VAL.RPM}},ECT:{{VAL.ECT}} <button type="button" class="btn btn-success btn-md">Normal</button> </p>
    {% endif %}
{% endfor %}

我在检查条件时遇到问题。条件

{% if (VAL['ECT'] > 251) %}

无效。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

找到答案

{% if (VAL.get('ECT')|int > 251) %}

这个将工作。需要将其转换为int:)

答案 1 :(得分:0)

您不需要Jinja2语法中的括号。

{% if VAL.get('ECT') > 251 %} 
<!-- do stuff -->
{% endif %}

甚至{% if VAL.ECT > 251 %}

如果您从视图中将dict传递到模板中,那么该格式就足够了。但是,如果您传入JSON,则所有内容都会被展平为字符串,因此您需要将值过滤为int:

{% if VAL.ECT|int > 251 %}<!-- do stuff -->{% endif %}