尝试在 Jinja 模板中调用函数时出现未定义错误

UndefinedError when trying to call function in Jinja templaet

在我的视图函数中,我将一个 dict 变量传递到我的 HTML 文件。 tags 是一个字典,默认为 {int: []}。由于每个键的值都是一个列表,所以我使用 iteritems() 来显示列表中的每个项目。但是,它没有用,我收到错误 UndefinedError: 'tags' is undefined。 Jinja2 可以调用 HTML 中的函数吗?为什么我的代码不起作用?

return render_template('index.html', title='Home', user=user, posts=posts, tags=tags)
<div class="post-tag">
{% for key,tag in tags.iteritems() %}
<a href="#">{{tag}}</a>
{% endfor %}
</div>

就我个人而言,我从未使用过烧瓶,但我使用过带有 cherrypy 的 jinja2。实际上你的代码是绝对正确的。这就是它的工作原理,但我认为正在发生的是在渲染模板时未定义变量 tags 。看看here

jinja2 中提供了所有基本数据类型操作。检查 tags 是否未在您未在特定情况下输入的某些 if 条件中定义。

{% for k, v in dct.iteritems() %}<a href="#">{{k}}</a>{% endfor %}

产出

<a href="#">item1</a><a href="#">item2</a>