我有一个接收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) %}
无效。我该如何解决这个问题?
答案 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 %}