我正在创建一个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
声明之间加载数据。
知道我需要做什么才能在同一页面上加载结果吗?
答案 0 :(得分:2)
尝试简化此行:
{% if json_data is not none and info is not none %}
为:
{% if json_data and info %}
这是一个有用的演示:
视图:
app.route('/')
def index():
name = None
age = None
return render_template('index.html', name=name, age=age)
的index.html:
{% if name and age %}
Hello, boy!
{% endif %}