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

如何在HTML页面中正确格式化显示Jinja2模板(.j2文件)?

解决Jinja2模板输出在HTML中不换行的问题

这种情况很常见,核心原因是浏览器渲染HTML时会把文本里的普通换行符当成空格处理,不会解析成换行。这里有几个简单直接的解决办法:

方法1:在Jinja2模板中直接用HTML换行标签

修改你的result.j2模板,把换行换成<br>标签,让浏览器明确识别换行:

Your first name is {{first_name}}<br>
Your last name is {{last_name}}

方法2:用<pre>标签包裹输出内容

如果想保留模板里的原始换行格式,不用修改模板,直接在output.html里用<pre>标签包裹输出内容即可——这个标签会严格保留文本的空格和换行:

<pre>{{ form_data }}</pre>

方法3:后端替换换行符为<br>

也可以在Python代码里处理渲染后的结果,把换行符批量替换成HTML换行标签:
修改views.py里的form_gen函数:

if form.is_valid():
    file_loader = FileSystemLoader('emps/templates/emps')
    env = Environment(loader=file_loader)
    template = env.get_template('result.j2')
    output = template.render(form.cleaned_data).replace('\n', '<br>')
    return render(request, "emps/output.html", { "form_data": output })

补充说明

HTML的渲染规则是:连续的空白字符(包括换行、空格、制表符)都会被合并成单个空格显示。所以你在Jinja2模板里写的换行,到浏览器里就变成了空格,导致两行内容连在一起。上面的三种方法都是通过明确告知浏览器如何处理换行,来达到预期的显示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:12:52