Flask 学习-89.模板中迭代字典.items()

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

以上是关于Flask 学习-89.模板中迭代字典.items()的主要内容,如果未能解决你的问题,请参考以下文章

Flask 的 template模板 与 jinja2语法

Python基础学习五

Python 字典items返回列表,iteritems返回迭代器

Flask教程11模板

flask学习:for循环遍历

Python 3字典迭代中的性能:dict [key] vs. dict.items()