【发布时间】:2017-02-19 01:37:22
【问题描述】:
我正在制作一个 Flask 应用程序,它接受用户的单个输入,然后使用该输入来查询 API,并返回结果。
我正在尝试使用相同的模板来获取用户输入和显示结果。
我的返回渲染模板如下所示:
return render_template("query.html", json_data=json_data, info=info)
问题在于,当页面首次加载时,它正在寻找 json_data 和 info 变量,但它们还不存在。
我试过这样做:
data = request.args.get("t")
if data:
...
return render_template("query.html", json_data=json_data, info=info)
else:
return render_template("meter_mdm.html", json_data=None, info=None)
然后在我的 Jinja 模板中,我输入:
{% if json_data is not none and info is not none %}
...HTML that uses the json_data and info variables
{% endif %}
但它仍在加载if 语句之间的数据。
知道我需要做什么才能在同一页面上加载结果吗?
【问题讨论】:
-
在模板中你使用
none而不是None,对吗? -
没错,但它仍然会加载 HTML 的文本。我最终将我不想显示的所有内容放在另一个
<div>中,然后通过名为visible的请求传递另一个变量。当模板第一次被传递时,它被设置为"none",我将它用作<div>的内联样式,当有数据时它设置为"inline"。我不确定这是否是最好的方法,但它确实有效。