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

如何在Flask中实现Inner HTML写入?解决HTML标签失效问题

解决Flask模板中HTML标签不生效的问题

Flask的Jinja2模板默认会自动转义变量中的HTML特殊字符(防止XSS攻击),所以你传入的<b>name</b>会被转义成&lt;b&gt;name&lt;/b&gt;,浏览器只会显示文本而不会解析标签。可以通过以下两种方式解决:

方法一:在模板中使用safe过滤器

修改HTML模板里的变量,添加|safe过滤器,告知Jinja2该内容无需转义:

{{ name|safe }}

方法二:在后端用Markup类包装内容

从Flask导入Markup类,将带HTML标签的内容用它包装后再传入模板:

from flask import Flask, render_template, Markup

app = Flask(__name__)

@app.route('/')
def main():
    return render_template('template.html', name=Markup('<b>name</b>'))

两种方法效果一致,按需选择:仅个别变量需解析HTML时,用模板过滤器更灵活;若多场景复用同一段带HTML的内容,后端包装一次更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:27:20