如何在Jinja2中手动去除空白?兼顾模板可读性的方法
Jinja2 多行模板保持可读性且去除输出空白的方案
针对你需要将冗长表达式拆分行、同时避免输出多余空白的需求,有几个实用的解决方案:
方案1:利用Jinja2原生空白控制标签
Jinja2支持用{%-和-%}来消除标签前后的空白与换行。你可以把换行放在控制标签内部,既拆分了冗长的表达式行,又不会在输出中产生额外空白:
{{ lengthy_snap_expression }}, {%- %}{{ lengthy_crackle_expression }}, {%- %}{{ lengthy_pop_expression }}
这个写法会生成你需要的SNAP, CRACKLE, POP,同时模板里每个表达式各占一行,可读性拉满。
方案2:先将表达式赋值给短变量
如果表达式实在太长,先把它们赋值给简短的变量,再拼接输出:
{% set snap = lengthy_snap_expression %} {% set crackle = lengthy_crackle_expression %} {% set pop = lengthy_pop_expression %} {{ snap }}, {{ crackle }}, {{ pop }}
这样模板结构清晰,变量名一目了然,输出也完全符合要求。
方案3:使用join过滤器拼接列表
把所有表达式放进列表(可以拆成多行写),再用join过滤器用, 连接,这种写法最简洁:
{{ [ lengthy_snap_expression, lengthy_crackle_expression, lengthy_pop_expression ] | join(', ') }}
列表里每行一个表达式,join会自动帮你拼接成无多余空白的字符串,完美兼顾可读性和输出效果。
内容的提问来源于stack exchange,提问作者Jason S
相关产品推荐
相关产品推荐

