计算列表中符合条件jinja / flask的项目数

时间:2019-04-16 05:41:12

标签: flask jinja2

我正在使用Flask将字典列表传递到HTML中

data = [
{'name':'val1', 'status':0},
{'name':'val2', 'status':1},
{'name':'val3', 'status':1}
]

通过变量datadata=data在HTML中对其进行访问

我可以用

计算HTML中data中的项数

{{ data|length }} # 3

但是我想要一定长度的具有一定状态的物品。即1

{{ length of data where item ['status] == 1 }}

# should out put length of 2

此问题不是重复的问题。该问题专门询问如何根据条件进行过滤。另一个答案仅基于布尔值进行过滤。

如果我的“状态”键可以容纳任何值'apple', 10, 'xyz',我希望能够过滤不是“真假”的基数。

答案

FLASK
database = [
{'name':'val1', 'status':'abc'},
{'name':'val2', 'status':'xyz'},
{'name':'val3', 'status':'xyz'}
]

HTML
{{ database|selectattr('status', 'equalto', 'xyz') | list | length}}

# 2

1 个答案:

答案 0 :(得分:1)

我认为,这将解决问题,遍历数据并为其保留计数值;

{% for row in data %}
    {% if (row.get('status')|int = 1) %}
        {% set counter = counter + 1 %}        
    {% endif %} 
{% endfor %}