Python 烧瓶:Jinja for loop每个模板只工作一次
我有一个Flask应用程序,我正在使用for循环动态生成html:Python 烧瓶:Jinja for loop每个模板只工作一次,python,flask,jinja2,Python,Flask,Jinja2,我有一个Flask应用程序,我正在使用for循环动态生成html: {% for subcategory in subcategories|unique: %} List of projects: <p> {{ subcategory }}</p> {% endfor %} {% for subcategory in subcategories|unique: %} List of subcategories:
{% for subcategory in subcategories|unique: %}
List of projects:
<p> {{ subcategory }}</p>
{% endfor %}
{% for subcategory in subcategories|unique: %}
List of subcategories:
<p> {{ subcategory }}</p>
{% endfor %}
{%用于子类别中的子类别|唯一:%}
项目清单:
{{子类别}}
{%endfor%}
{子类别中的子类别的百分比|唯一:%}
子类别列表:
{{子类别}}
{%endfor%}
但是,第二个for循环不会产生任何结果
如果我删除了“| unique”,那么它会起作用
为什么?您可能传入的是生成器,而不是列表或其他可编辑对象 示例生成器可能是:
subcategories=[str(项目)表示子类别中的项目]
在Python端,尝试在将项目发送到Jinja渲染器之前将其包装到列表中:
subcategories=list([str(item)表示子类别中的项目])
数据是否来自数据库?无所谓,如果数据来自数据库,并且我对其进行了硬编码,则我会得到相同的结果。您发布的内容与硬编码列表正常工作;我自己试过了。您遇到的任何问题都可能是代码其他部分的结果。如果它来自数据库,它将像一个生成器。一旦运行循环,就无法再次访问数据。