【问题标题】:flask - jinja template forloop increasing loop indexflask - jinja 模板 forloop 增加循环索引
【发布时间】:2017-01-18 09:31:16
【问题描述】:

我正在做一个烧瓶项目。在 Jinja 模板中,我在 for 循环中有一个问题。我想打印字典第一个索引的第一个索引。 newlist 的输出为:

{1: [{'uid': 407, 'color': red},
{'uid': 407, 'color': black},
{'uid': 407, 'color': white}], 2:
[{'uid': 372, 'color': pink},
{'uid': 372, 'color': blue},
{'uid': 372, 'color': orange}], 3:
[{'uid': 28, 'color': green}]}

我想得到这样的输出:

{'uid': 407, 'color': red}
{'uid': 407, 'color': black}
{'uid': 407, 'color': white}

{'uid': 372, 'color': pink}
{'uid': 372, 'color': blue}
{'uid': 372, 'color': orange}

{'uid': 28, 'color': green}

如何编辑此 for 循环以达到该输出?这里我手动设置了两个索引( newlist.1.1 ),如何正确增加索引号?

{% for each in newlist %}
    {{ newlist.1.1 }}<br>
{% endfor %}

【问题讨论】:

    标签: python templates for-loop flask jinja2


    【解决方案1】:

    就像对待模板外的字典一样对待它,这就是 Jinja 模板的意义所在:

    >>> newlist  = {1: [{'uid': 407, 'color': 'red'}, {'uid': 407, 'color': 'black'}, {'uid': 407, 'color': 'white'}], 2: [{'uid': 372, 'color': 'pink'}, {'uid': 372, 'color': 'blue'}, {'uid': 372, 'color': 'orange'}], 3: [{'uid': 28, 'color': 'green'}]}
    >>> 
    >>> for k in newlist :
            for d in newlist[k]:
                print(d)
    
    
    {'uid': 407, 'color': 'red'}
    {'uid': 407, 'color': 'black'}
    {'uid': 407, 'color': 'white'}
    {'uid': 372, 'color': 'pink'}
    {'uid': 372, 'color': 'blue'}
    {'uid': 372, 'color': 'orange'}
    {'uid': 28, 'color': 'green'}
    

    所以,在您的模板中:

    {% for k in newlist %}
        {% for d in newlist[k] %}
            {{ d }}<\br>
        {% endfor %}
        <\br>
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多