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

Jinja2中for循环、宏语法的短横(-)有何作用?

Jinja2模板标签中短横(-)的作用

这些短横绝对不是格式美化,而是有实际功能的空白控制语法,用来精确控制模板渲染后的输出格式。

核心作用

Jinja2默认会保留模板中标签({% ... %})前后的换行、空格等空白字符到最终输出里。而短横的作用就是移除标签一侧的空白:

  • -%}:移除标签右侧的所有空白(包括换行、空格、制表符)
  • {%-:移除标签左侧的所有空白
  • {%- ... -%}:同时移除标签前后的空白

实际效果对比

举个简单例子,没有短横的模板:

{% for item in [1, 2] %}
{{ item }}
{% endfor %}

渲染后的输出会带有多余空行:

1

2

如果加上短横控制:

{% for item in [1, 2] -%}
{{ item }}
{%- endfor %}

渲染后的输出就会更紧凑,没有多余空行:

1
2

适用场景

这个语法常用于需要严格控制输出格式的场景:

  • 生成整洁的HTML代码,避免大量空行导致页面源码冗余
  • 生成纯文本(如配置文件、API响应)时,保证输出的格式符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:30:02