Python 从Jinja渲染模板中删除不必要的空白
我正在使用Python 从Jinja渲染模板中删除不必要的空白,python,flask,jinja2,Python,Flask,Jinja2,我正在使用curl观看我的web应用程序的输出。当Flask和Jinja渲染模板时,输出中存在大量不必要的空白。它似乎是通过呈现来自Flask WTF和Flask Bootstrap的各种组件而添加的。我可以使用sed,但是有没有办法从Jinja控制它呢?Jinja有多种方法来控制它。它没有美化输出的方法,您必须手动确保所有内容看起来都“不错” 最广泛的解决方案是在env上设置trim_块和lstrip_块 app.jinja_env.trim_blocks = True app.jinja_e
curl
观看我的web应用程序的输出。当Flask和Jinja渲染模板时,输出中存在大量不必要的空白。它似乎是通过呈现来自Flask WTF和Flask Bootstrap的各种组件而添加的。我可以使用sed
,但是有没有办法从Jinja控制它呢?Jinja有多种方法来控制它。它没有美化输出的方法,您必须手动确保所有内容看起来都“不错”
最广泛的解决方案是在env上设置trim_块
和lstrip_块
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
如果要在文件末尾保留换行符,请设置strip\u training\u newlines=False
可以使用控制字符修改标记周围的空格的工作方式<代码>-始终删除空白,+
始终保留空白,覆盖该标记的环境设置。-
字符可以位于标记的开头或结尾(或两者)以控制该方向的空格,+
字符仅在标记的开头才有意义
在{%-if…%}
在前后进行条带处理{%-if…-%}
在{%+如果…%}
在之前保留,在之后删除{%+如果…-%}
- 请记住,
是单独处理的{%endif%}
控制字符仅适用于您编写的模板。如果包含模板或使用第三方提供的宏,无论他们如何编写,模板都将应用于该零件。要在块前后折叠空白:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after