我有关于python / html

时间:2018-10-21 18:27:09

标签: python html html-lists

我刚刚开始学习Flask和Python。我在接收值并显示嵌套循环的结果时遇到问题

HTML:

{% for item in text %}
{% for sc in abc %}
<ul>{{item}}</ul>
<ul>
    {% for list_sc in sc %}
    <li>{{ list_sc }}</li>
    {% endfor %}
</ul>
{% endfor %}
{% endfor %}

python:

text = ['1','2']
b = [ ['a','b','c'],
     ['D','E','F']]
return render_template('index.html',text = text,abc = b)

我要放的是 输出:

1

  • a
  • b
  • c

2

  • D
  • E
  • F

但是我有:

1

  • a
  • b
  • c

1

  • D
  • E
  • F

2

  • a
  • b
  • c

2

  • D
  • E
  • F

谢谢。

1 个答案:

答案 0 :(得分:0)

这似乎是一项艰巨的任务。但是,从the official doc of Jinja2(提供了很多内置函数,包括循环控件)中汲取了灵感,以下是我的代码来解决您的问题:

{% for item in text %}
    {% for sc in abc %}

        {% if loop.index0 == 0 %}
            {% if item == '1' %}
                <ul>{{item}}</ul>

                <ul>
                    {% for list_sc in sc %}
                        <li>{{ list_sc }}</li>
                    {% endfor %}
                </ul>
            {% endif %}
        {% endif %}

        {% if loop.index0 == 1 %}
            {% if item == '2' %}
                <ul>{{item}}</ul>

                <ul>
                    {% for list_sc in sc %} 
                        <li>{{ list_sc }}</li>
                    {% endfor %}
                </ul>

            {% endif %}
        {% endif %}

    {% endfor %}
{% endfor %}

您会看到我正在使用 loop.index0 函数,该函数返回从索引0开始的循环的当前迭代。这使我只能从第一个子目录中提取数据在第一种情况下列出,或者在第二种情况下从第二个子列表列出。