列表索引如何在 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
在渲染函数的上下文中。
我有一个简单的 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
在渲染函数的上下文中。