Python 烧瓶:Jinja for loop每个模板只工作一次

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:

我有一个Flask应用程序,我正在使用for循环动态生成html:

    {% 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)表示子类别中的项目])

数据是否来自数据库?无所谓,如果数据来自数据库,并且我对其进行了硬编码,则我会得到相同的结果。您发布的内容与硬编码列表正常工作;我自己试过了。您遇到的任何问题都可能是代码其他部分的结果。如果它来自数据库,它将像一个生成器。一旦运行循环,就无法再次访问数据。