是否可以在具有不同 id 的 html 文件中写入多个“div”,并在 Flask 中使用 if-else 语句有选择地显示它们?

哈西斯·博拉尔

我有一个 Python 函数,它返回 80 个可能值中的 1 个,并且根据返回的值,我需要显示不同的文本块。我试图实现的功能大致如下所示,

<!DOCTYPE HTML>
<html>
    <body>

        <div id="1"> One </div>
        <div id="2"> Two </div>
        <div id="3"> Three </div>

        {% if id == "1" %}
            display div with id "1"
        {% elif id == "2" %}
            display div with id "2"
        {% else %}
            display div with id "3"
        {% endif %}

    </body>
</html>

所以,我想在 html 文件的某个地方写 80 个不同的 'div',并根据 Python 函数返回的值有选择地显示它们。这甚至可以做到吗?如果没有,我还有什么其他选择?

编辑 - div 不仅仅是文本块。它们也包含 html。

埃敏·马斯蒂扎达(Emin Mastizada)

一种方法是将项目创建为对象列表:

items = [{'id': 1, 'value': 'One'}, {'id':2, 'value': 'Two'}]
return render_template('hello.html', items=items)

在您的 html 模板中(Flask 的默认设置是 Jinja2):

{% for item in items %}
  {% if item.id == 1 %}
    <div id="1">{{ item.value }}</div>
  {% elif item.id == 2 %}
    <div id="2">Second item</div>
  {% endif %}
{% endfor %}

但是,如果所有 div 都在 html 代码中并且您想显示、隐藏它们,那么您将需要 javascript:

  1. 添加display: none;到 div 样式,它们都将被隐藏。
  2. 假设您的 Python 代码将返回 item_id 作为返回值,我们需要显示该项目(使用 jquery 插件):

添加脚本标签:

var item = '{{ item_id }}';
$('#' + item).show();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档