有没有办法删除jinja2中的空白行进行循环?

时间:2019-11-22 17:37:59

标签: jinja2

我现在遇到的问题是在jinja2模板中的for循环中,每次迭代之间都有空白行,我想删除。

{% if instance['virtual_route_source'] and instance['virtual_route_gateway'] %}
    virtual_routes {
  {% for source in instance['virtual_route_source'] %}
        {{ source }} via {{ instance['virtual_route_gateway'] }} dev {{ instance['interface'] }}
  {% endfor %}
    }
{% endif %}

预期输出:

virtual_routes {
    192.168.1.5 via 10.10.10.10 dev ens33
    192.168.100.16 via 10.10.10.10 dev ens33
    191.168.195.3 via 10.10.10.10 dev ens33
}

实际输出:

virtual_routes {

    192.168.1.5 via 10.10.10.10 dev ens33

    192.168.100.16 via 10.10.10.10 dev ens33

    191.168.195.3 via 10.10.10.10 dev ens33

}

任何见识将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在开始模板标记后添加破折号,以表示前面的空白将被丢弃:

{% if instance['virtual_route_source'] and instance['virtual_route_gateway'] %}
    virtual_routes {
  {%- for source in instance['virtual_route_source'] %}
        {{ source }} via {{ instance['virtual_route_gateway'] }} dev {{ instance['interface'] }}{{ '\n' }}
  {%- endfor %}
    }
{% endif %}

答案 1 :(得分:0)

经过一些进一步的测试,如果有人想知道的话,我会使用它的工作方式:

{% if instance['virtual_route_source'] and instance['virtual_route_gateway'] %}
    virtual_routes {
  {%- for source in instance['virtual_route_source'] %}
        {{ source }} via {{ instance['virtual_route_gateway'] }} dev {{ instance['interface'] }}
  {%- endfor %}{{ '\n' }}    }
{% endif %}