我正在使用Flask将字典列表传递到HTML中
data = [
{'name':'val1', 'status':0},
{'name':'val2', 'status':1},
{'name':'val3', 'status':1}
]
通过变量data
和data=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
答案 0 :(得分:1)
我认为,这将解决问题,遍历数据并为其保留计数值;
{% for row in data %}
{% if (row.get('status')|int = 1) %}
{% set counter = counter + 1 %}
{% endif %}
{% endfor %}