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

Flask输出移除引号:HTML元素被转为文本的问题求助

解决Flask中HTML元素被当作纯文本渲染的问题

问题出在Flask默认使用的Jinja2模板引擎会自动转义所有传入的HTML内容(防止XSS攻击),导致你的img标签被当成普通字符串显示,还带上了转义后的引号。

有两种简单的解决方式:

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

在你的index.html模板里,输出对应内容时加上|safe过滤器,告诉Jinja2这段内容是安全的,不需要转义:

{{ gamerpic|safe }}

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

在Flask后端代码里,先导入Markup类,再用它把HTML内容包装后传入模板:

from flask import Flask, render_template, Markup

@app.route('/', methods=['GET', 'POST'])
def index():
    try: 
        get_gamertag()
    except: 
        pass    
    with open('dataparse.txt') as f:
        gamertag = f.read()
    with open('dataparse1.txt') as f:
        gamerpic = f.read()
    # 用Markup包装HTML内容
    gamerpic_html = Markup(f'<img src="{gamerpic}" width="50px" height="50px">')
    return render_template('pages/index.html', gamertag=gamertag, gamerpic=gamerpic_html)

之后在模板里直接输出{{ gamerpic_html }}即可,不需要额外处理。

注意:如果你的gamerpic是直接从文件读取的完整HTML字符串,同样可以用上面任意一种方法处理——要么在模板加safe,要么后端用Markup包装读取到的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:05:49