说我有这本字典
{"k1":"dog", "k2":"cat", "k3":["Pochi","Wanwan"]}
现在在我的模板中,我像这样迭代:
{% for key, value in dict.iteritems() %}
<tr>
<td>{{ key }}</td>
<td>{{ value }}</td>
</tr>
{% endfor %}
但我确实想在标签内做一些额外的处理,是否可以检查“值”是列表还是字典类型?这样一来,我不仅可以吐出 list ,还可以做一些事情,例如,说出要点。
最佳答案
要检查“值”是否属于字典类型,您可以这样做
{% for key, value in dict.iteritems() %}
<tr>
<td>{{ key }}</td>
{% if value is mapping %}
"Do something"
{% else %}
<td>{{ value }}</td>
</tr>
{% endfor %}
要检查“值”是否属于列表类型,您可以创建自定义过滤器。 Here's您会发现有用的链接。
编辑:这是一个如何创建自定义过滤器的示例。先说功能
def is_list(value):
return isinstance(value, list)
然后将函数声明为过滤器
from flask import Flask
app = Flask(__name__)
....
app.jinja_env.filters['is_list'] = is_list
然后过滤器将在您的模板中可用。
关于Python 模板,检查迭代的变量值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579110/