列表索引如何在 Jinja 中工作

How list indexing works in Jinja

我有一个简单的 flask 应用程序,我需要在 html 页面中显示 2 张图像,所有图像都存储在 static 文件夹中

在呈现 html 页面时,我将图像文件名作为列表传递,而在 html 页面上,我使用 jinja 逻辑来显示图像

img_lst = [filename1, filename2]
return render_template("index.html", img_lst=img_lst)

我可以轻松地遍历列表并使用以下逻辑显示图像

{% for image in img_lst %}
    <img src="{{url_for('static', filename=image)}}">
{% endfor %}

但是如果我从列表中索引一个特定的文件,我会收到一个错误

jinja2.exceptions.UndefinedError: 'img_lst' is undefined

<img src=" {{url_for('static', filename=img_lst[0])}}"> 

我想从列表中单独访问文件名而不是循环访问

我没有发现你上面的代码有任何问题,但我猜你需要强制 flask 重新加载模板,所以 jinja2 会考虑你的变量 img_lst下次重新加载。

在下面添加这个配置,让我知道它是否有效:

app.config["TEMPLATES_AUTO_RELOAD"] = True

更新

你的代码有效,我没有收到那个错误,所以我猜你可能正在研究 other view/template 而你忘了传递 img_lst 在渲染函数的上下文中。