我刚刚开始学习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 %}
蟒:
text = ['1','2']
b = [ ['a','b','c'],
['D','E','F']]
return render_template('index.html',text = text,abc = b)
我想放出来是 输出:
1
- 一个
- 乙
- C
阿拉伯数字
- D
- E
- F
但我有:
1
- 一个
- 乙
- C
1
- D
- E
- F
阿拉伯数字
- 一个
- 乙
- C
阿拉伯数字
- D
- E
- F
谢谢。
这似乎是一项艰巨的任务。但是通过从 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 开始的循环的当前迭代。这允许我在第一种情况下仅从第一个子列表中提取数据,或者在第二种情况下从第二个子列表中提取数据。