使用jinja2 / django在for循环中加载图像

时间:2018-06-25 18:54:26

标签: python html django jinja2

如何使用jinja2和django在网页上动态显示图像。

目前,我正在尝试在for循环中加载图像,例如:

{% for img_path in imgs %}
   <img src="{% static "{{img_path|safe}}" %}" alt="Herb" id="plant-mascot" style="width: 100px"/>
{% endfor %}

但是,这不起作用。图像路径(imgs)绝对正确。我也尝试加载相同的图像而不将其作为变量传递并显示它。

我认为我在jinja和html中缺少某些东西,我认为jinja不会将文本img_filepath传递给html而是对象或其他东西?

我该如何做才能在网页上显示任意数量的图像?

变量imgs是一个包含img路径的列表,例如:

['img/im1.jpg', 'img/im2.jpg',...]

预期输出:

包含所有图像('im1.jpg','im2.jpg'...)的网页

实际输出:

一个空页面

2 个答案:

答案 0 :(得分:1)

此处的关键是使用浏览器的“查看页面源代码”命令查看生成的HTML。您可能会发现Jinja模板的语法不正确:

  • 嵌套的“ {%”和“ {{”(如@JohnGorden所述)。
  • “ static”也是Jinja中的一个函数,可以更好地看起来像“ static('url')”。

对于src属性,此操作(未测试)如下:

  

src =“ static(” {{img_path | safe}}“))”

您可能还不想对所有图像使用相同的“ id”属性。

答案 1 :(得分:1)

{% for img_path in imgs %}
   <img src="{{img_path|static|safe}}" alt="Herb" id="plant-mascot" style="width: 100px"/>
{% endfor %}