首页 > 解决方案 > jinja2 中的多行变量

问题描述

我正在尝试在 jinja2 中读取/存储多行变量。但是,它没有很好地解析,并且我在字符之间得到了很多断线和空格。如果 ca 收到提示如何解决它会很好。代码如下所示:

>    certificate: |-
>{% for line in certificate %}
>          {{ line }}
>{% endfor %}
>
>{% if destinationCACertificate is defined %}
>        destinationCACertificate: |-
>{% for line in destinationCACertificate %}
>          {{ line }}
>{% endfor %}
>{% endif %}

我想得到这样的东西:

certificate: |-
      -----BEGIN CERTIFICATE-----
      MIIM1TCCCr2gAwIBAgITGAAAH6w6I7/Kn4g5bwAAAAAfrDANBgkqhkiG9w0BAQsF
      ADBtMQswCQYDVQQGEwJERTEaMBgGA1UEBwwRRnJhbmtmdXJ0IGFtIE1haW4xFzAV

标签: variablesjinja2whitespacemultiline

解决方案


该行在这里被视为一个字符。应该添加 split 函数,告诉 jinja 考虑一条仍然找到断线('\n')的线。

所以它应该是这样的:

 certificate: |-
    >    {% for line in certificate.split('\n') %}
    >    {{ line }}
    >    {% endfor %}
    >    {% endif %}
    >    {% if destinationCACertificate is defined %}
    >    destinationCACertificate: |-
    >    {% for line in destinationCACertificate.split('\n') %}
    >    {{ line }}
    >    {% endfor %}
    >    {% endif %}

推荐阅读