Python模板,检查迭代的变量值类型

时间:2015-06-01 17:00:41

标签: python templates flask

说我有这本词典

{"k1":"dog", "k2":"cat", "k3":["Pochi","Wanwan"]}

现在在我的模板中,我正在迭代:

{% for key, value in dict.iteritems() %}
    <tr>
        <td>{{ key }}</td>
        <td>{{ value }}</td>
    </tr>
{% endfor %}

但我确实想在标签内做一些额外的处理,是否可以检查“值”是列表还是字典类型?因此,我不仅可以吐出列表,而且可以做一些事情,比如说它们。

1 个答案:

答案 0 :(得分:1)

检查&#34;值&#34;是一种字典类型,你可以做类似的事情

{% for key, value in dict.iteritems() %}
<tr>
    <td>{{ key }}</td>
    {% if value is mapping %}
        "Do something"
    {% else %}
        <td>{{ value }}</td>
</tr>
{% endfor %}

检查&#34;值&#34;是列表类型,您可以创建自定义筛选器。 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

然后过滤器将在您的模板中可用。