在jinja2模板中获取列表的长度

如何获取jinja2模板列表中的元素数目?

例如,在Python中:

print(template.render(products=[???])) 

并在jinja2

 <span>You have {{what goes here?}} products</span> 
 <span>You have {{products|length}} products</span> 

你也可以在expression式中使用这个语法

 {% if products|length > 1 %} 

jinja2的内置filterlogging在这里 ; 具体来说,正如您已经发现的那样, length (及其同义词count )被logging为:

返回序列或映射的项目数。

因此,正如您发现的那样,您的模板中的{{products|count}} (或同等地{{products|length}} )将会给出“产品数量”(“length of list”)

亚历克斯的评论看起来不错,但我仍然与使用范围混淆。 以下工作为我在使用长度范围内的条件工作。

 {% for i in range(0,(nums['list_users_response']['list_users_result']['users'])| length) %} <li> {{ nums['list_users_response']['list_users_result']['users'][i]['user_name'] }} </li> {% endfor %}