如何使用Flask和Jinja2使某些HTML不显示?

时间:2017-02-19 01:37:22

标签: python flask jinja2

我正在创建一个Flask应用程序,它从用户那里获取一个输入,然后使用该输入来查询API,并返回结果。

我尝试使用相同的模板来获取用户输入并显示结果。

我的返回渲染模板如下所示:

return render_template("query.html", json_data=json_data, info=info)

问题在于,首次加载页面时,它会查找json_datainfo个变量,但它们还不存在。

我试过这样做:

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声明之间加载数据。

知道我需要做什么才能在同一页面上加载结果吗?

1 个答案:

答案 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 %}