我刚刚开始学习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
2
但是我有:
1
1
2
2
谢谢。
答案 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开始的循环的当前迭代。这使我只能从第一个子目录中提取数据在第一种情况下列出,或者在第二种情况下从第二个子列表列出。