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

geo*_*geo 1 python jinja2 flask

我正在制作一个 Flask 应用程序,它接受用户的单个输入,然后使用该输入来查询 API,并返回结果。

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

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

return render_template("query.html", json_data=json_data, info=info)
Run Code Online (Sandbox Code Playgroud)

问题是,当页面首次加载时,它正在寻找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)
Run Code Online (Sandbox Code Playgroud)

然后在我的 Jinja 模板中,我输入:

{% if json_data is not none and info is not none %}   

    ...HTML that uses the json_data and info variables

{% endif %}
Run Code Online (Sandbox Code Playgroud)

但它仍在语句之间加载数据if

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

Gre*_* Li 5

尝试简化这一行:

{% if json_data is not none and info is not none %}   
Run Code Online (Sandbox Code Playgroud)

到:

{% if json_data and info %}
Run Code Online (Sandbox Code Playgroud)

这是一个有效的演示:

看法:

app.route('/')
def index():
    name = None
    age = None
return render_template('index.html', name=name, age=age)
Run Code Online (Sandbox Code Playgroud)

索引.html:

{% if name and age %}
Hello, boy!
{% endif %}
Run Code Online (Sandbox Code Playgroud)