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>

posted @ 2022-10-14 15:35  上海-悠悠  阅读(166)  评论(0编辑  收藏  举报