You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja2模板使用{%- %}语法后循环前仍有空行如何删除

你遇到的循环前多余空行,来源是jinja2.Template('''后面紧跟的换行,这个换行属于模板内容的一部分,不在循环控制标签的处理范围内,所以标签里加减号不会消除这个换行。

解决方案

方法1:调整模板字符串起始位置

直接去掉三引号后的换行,让模板逻辑紧跟在字符串起始标记后:

template = jinja2.Template('''{%- for item in data -%}
...
{%- endfor -%}
''')

方法2:开启Jinja2全局空白控制参数

初始化Template时传入trim_blocks和lstrip_blocks参数,自动处理块标签相关的空白和换行:

template = jinja2.Template('''
{%- for item in data -%}
...
{%- endfor -%}
''', trim_blocks=True, lstrip_blocks=True)

如果是通过jinja2.Environment全局初始化模板,把这两个参数加在Environment的初始化配置中即可生效到所有模板。

方法3:模板开头加空白控制标签

在模板最开头加空的空白控制标签,吃掉开头的多余换行:

template = jinja2.Template('''
{%- -%}
{%- for item in data -%}
...
{%- endfor -%}
''')

内容的提问来源于stack exchange,提问作者thunpy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:45:01