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

Flask页面重载后<br>标签显示为纯文本的问题求助

解决Flask页面重载后<br>标签显示为纯文本的问题

问题原因

AJAX请求后用.html(data)能正确解析<br>实现换行,但页面重载时,Flask默认会转义HTML实体,导致<br>被转换成&lt;br&gt;,最终显示为纯文本而非换行效果。

解决方案

1. Flask后端确保返回未转义的HTML

在生成响应内容时,用Markup类包裹内容,标记为安全HTML,避免Flask自动转义:

from flask import Flask, request, Markup

app = Flask(__name__)

@app.route('/terminal')
def terminal():
    command = request.args.get('command', '')
    # 构造带<br>的响应内容
    response_content = f"   foo<br>Command '{command}' is not recognised<br><br>Root&gt;"
    # 用Markup包裹,告诉Flask这是安全的HTML
    return Markup(response_content)

如果是通过模板渲染页面(重载时显示历史内容),在模板中使用safe过滤器:

<div class="window" id="terminal-window">{{ terminal_content|safe }}</div>

2. 修复前端代码的小问题

你的JavaScript代码有两处小错误,修正后更规范:

$(document).ready(function() {
    function send_form(e){
        $.ajax({
            url: $("#command-form").attr("action"),
            type: "get",
            cache: false,
            data: $("#command-input").serialize(),
            success: function(data){
                $("#terminal-window").html(data);    
                $("#command-input").val("");
                $("#command-input").focus();
            }
        });
    }
    $("#submit-button").click(function(e){
        e.preventDefault();
        send_form(e);
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:30:49