例如:

 1 <div>
 2     {% if True %}
 3         yay
 4     {% endif %}
 5 </div>
 6 
 7 生成文件为
 8 
 9 <div>
10 
11         yay
12 
13 </div>

两种方法解决:

1、如果应用程序将Jinja配置为trim_blocks,则会自动删除模板标记之后的第一个换行符(如PHP中)。该lstrip_blocks 选项也可以设定为从线到一个块的开始的开始剥离制表符和空格。(如果在块开始之前还有其他字符,则不会剥离任何内容。)

与这两个trim_blockslstrip_blocks启用,你可以把自己的行块标记,当渲染,保持内容的空白整个区块线将被删除。

 

2、手动剥离模板中的空白。如果将减号(-添加到块的开头或结尾(例如For标签),注释或变量表达式,则将删除该块之前或之后的空格。

1 {% for item in seq -%}
2     {{ item }}
3 {%- endfor %}

如果启用了行语句,它们会自动删除前导空格直到行的开头。

默认情况下,Jinja2还会删除尾随换行符。要保留单个尾随换行符,请将 Jinja配置为keep_trailing_newline