Jinja - 在for循环中显示两个不同的值

时间:2014-08-22 03:17:38

标签: flask jinja2

我的目标是在迭代for循环时立即为表条目显示url路径和图像源。但是,我通过两个不同的键访问图像的URL和路径。这将分别返回链接的条目和图像的条目。

{% for node in dictionary_list %}
            {% for key, value in node.iteritems() %}
                    {% if key == 'image' %}
                        <td></td>
                        <td><img src={{ value }}></td>
                    {% elif key == 'path' %}
                        <td></td>
                        <td><a href={{ "http://example.com"+value }}>Link</a></td>

我已经想过将路径和图像放在一个键中并解析出每个键,但这对Jinja来说似乎不可行。是否可以返回类似以下内容的代码?

{% for node in dictionary_list %}
            {% for key, value in node.iteritems() %}
                    {% if key == 'image_link' %}
                        <td></td>
                        <td><a href={{value1}}><img src={{value2}}></a></td>

1 个答案:

答案 0 :(得分:3)

这取决于您的数据结构。最好是为每个值提供图像的urlfile_path键的字典。我不知道原始dictionary_list的结构和深度,所以这是最好的猜测,但你可以这样做:

dictionary_list = {'node_name_1': {'url': 'some-image.jpg', 'file_path':'/image/path'},
                   'node_name_2': {'url': 'some-image.jpg', 'file_path':'/image/path'},
                    ... }

然后你可以在Jinja2循环中访问它们,如下所示:

{% for key, value in dictionary_list.iteritems() %}
  <td><a href={{value['url']}}><img src={{value['file_path']}}></a></td>    
{% endfor %}