我对python / html的嵌套循环有问题



我刚刚开始学习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 开始的循环的当前迭代。这允许我在第一种情况下仅从第一个子列表中提取数据,或者在第二种情况下从第二个子列表中提取数据。

最新更新