如何获取jinja2模板中列表中的元素数量?
例如,在Python中:
print(template.render(products=[???]))
在jinja2
<span>You have {{what goes here?}} products</span>
Ale*_*lli 485
<span>You have {{products|length}} products</span>
您也可以在表达式中使用此语法
{% if products|length > 1 %}
这里记录了 jinja2的内置过滤器; 具体而言,正如您已经发现的那样,length(及其同义词count)记录在:
返回序列或映射的项目数.
所以,再次如您所发现的,{{products|count}}(或等效地{{products|length}})在您的模板中将给出"产品数量"("列表长度")
亚历克斯的评论看起来不错,但我仍然对使用范围感到困惑.以下工作适用于使用范围内长度的条件.
{% 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 %}
小智 6
我遇到过 None 长度问题,这会导致内部服务器错误: TypeError: object of type 'NoneType' has no len()
我的解决方法是如果对象为 None 则显示 0 并计算其他类型的长度,例如我的情况下的列表:
{{'0' if linked_contacts == None else linked_contacts|length}}
小智 6
如果使用带有数组的 for 循环,则可以使用以下内容
{% for i in range(array|length) %}
          array[i]
{% endfor %}