首页 > 解决方案 > 用于索引名称的 jinja2 循环

问题描述

我有以下字典列表:

servers:
- name: web
  number: 3
- name: lb
  number: 2

我需要 jinja2 模板的以下输出:

web_1
web_2
web_3
lb_1
lb_2

我已经尝试在 stackoverflow 上查看 jinja2 手册或其他一些示例,但我发现对我的用例没有任何用处。

{% for server in servers %}
{{ server.name }}_index
{% endfor %}

上面的代码不起作用。

标签: pythonloopsjinja2

解决方案


您只需要在该number字段上添加额外的循环:

{% for server in servers %}
{%- for index in range(server.number) %}
{{- server.name }}_{{ index + 1 }}
{% endfor %}
{%- endfor %}

第一个循环迭代服务器条目,第二个循环在指定范围(number字段)内生成索引。


推荐阅读