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

如何在Python向HTML传递多行字符串时保留换行格式?

解决Python传递多行字符串到HTML显示为单行的问题

这个问题很常见,主要是因为HTML的默认文本渲染规则导致的——它会把连续的空白字符(包括换行、空格)都合并成一个空格,所以你的多行代码就变成单行啦。给你两种简单的解决办法:

方法1:使用HTML <pre> 标签保留原始格式

<pre> 标签的作用就是预格式化文本,它会完全保留你字符串里的换行、空格和缩进,非常适合展示代码这类需要格式的内容。

只需要在你的HTML模板里把变量包裹在 <pre> 标签中就行:

<div>
  <pre>{{ device }}</pre>
</div>

方法2:将换行符转换为HTML的 <br> 标签

如果你不想用 <pre> 自带的等宽字体(或者需要更灵活的样式控制),可以在Python端把字符串里的换行符 \n 替换成HTML的换行标签 <br>,然后在模板里用 safe 过滤器告诉Jinja2不要转义这些HTML标签。

修改Python代码:

@app.route("/<faqid>")
@is_logged_in
def faqid(faqid):
    device = """ class-map match-any eftv6-bun-1
 match access-group ipv6 eftv6-bun
 end-class-map
!
 policy-map qp-80
 class eftv6-bun-1
 set dscp af31
!
 class class-default
!
 end-policy-map
! """
    # 把换行符替换成HTML的<br>标签
    device_formatted = device.replace('\n', '<br>')
    return render_template("faqdetails.html", device=device_formatted)

修改HTML模板:

<div>{{ device|safe }}</div>

两种方法各有优劣:<pre> 省心省力,适合代码展示;<br> 方式更灵活,方便你用CSS自定义文本样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:33:33