Skip to main content
 首页 » 编程设计

python之在 Jinja 中使用 Python `set` 关键字

2025年05月04日13bonelee

我想返回 Jinja 模板中的唯一项。简化:

{% set lst = [1, 2, 3, 3, 2] %} 
{% for t in set(lst) %} 
    {{ t }} 
{% endfor %} 

但这会引发错误:

UndefinedError: 'set' is undefined 

而且似乎很难在 Google 上找到答案,因为 set 也是 Jinja 关键字。 那么我可以在 Jinja 中使用 Python 的 set 关键字,还是可以在 Jinja 中返回列表中的唯一项目?

请您参考如下方法:

如果您使用 jinja 至少 v。 2.10: 你可以使用内置过滤器 unique:

{% set lst = [1, 2, 3, 3, 2] %} 
{% for t in lst|unique %} 
    {{ t }} 
{% endfor %} 

如果你的jinja 版本是<2.10你可以自己定义这个过滤器:

@app.template_filter('unique') 
def unique(s): 
    return list(set(s)) 

您可以找到有关编写自定义神社过滤器的更多信息 here