Hex*_*nic 29 python jinja2 flask
我正在使用curl我的网络应用程序的输出.当Flask和Jinja渲染模板时,输出中会有很多不必要的空白区域.它似乎是通过渲染Flask-WTF和Flask-Bootstrap的各种组件来添加的.我可以使用它sed,但有没有办法从Jinja控制它?
dav*_*ism 62
Jinja有多种方法来控制空白.它没有办法美化输出,你必须手动确保一切看起来"不错".
最广泛的解决方案是设置trim_blocks和环境lstrip_blocks.
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
Run Code Online (Sandbox Code Playgroud)
如果要在文件末尾保留换行符,请进行设置strip_trailing_newlines = False.
您可以使用控制字符来修改块周围的空白的工作方式. -始终删除标记前后的空格,+始终保留它,覆盖该块的env设置.角色可以进入块的开头或结尾(或两者)以控制该方向上的空白.
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
Run Code Online (Sandbox Code Playgroud)
请注意,控制字符仅适用于您编写的模板.如果您包含模板或使用第三方的宏,但他们编写的模板将适用于该部分.
小智 13
要在块之前和之后折叠空白:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after
Run Code Online (Sandbox Code Playgroud)