Flask 学习-89.模板中迭代字典.items()
前言
django 中迭代字典,可以直接Dict.items,在flask 中迭代字典遇到了一些坑
迭代字典
视图部分
data = {
"name": "yoyo",
"email": "123@qq.com"
}
@app.route('/hello')
def hello():
return render_template('hello.html', data=data)
在 django 中items 不需要加括号,直接这样写没问题
<body>
<p>迭代字典</p>
{% for key, value in data.items %}
<p>{{key}}: {{ value }}</p>
{% endfor %}
</body>
但是flask 中会报错TypeError: 'builtin_function_or_method' object is not iterable
File "D:\demo\flask_api_demo\templates\hello.html", line 9, in top-level template code
{% for key, value in data.items %}
TypeError: 'builtin_function_or_method' object is not iterable
后来发现django 对jinja2 模板做了一些自己的封装,跟flask里面用的jinja2 模板语法有一些区别
在flask 模板中引用方法,需加括号.items()
<body>
<p>迭代字典</p>
{% for key, value in data.items() %}
<p>{{key}}: {{ value }}</p>
{% endfor %}
</body>