You need to enable JavaScript to run this app. JavaScript如何将#&34;转回双引号?Flask渲染HTML转义问题求解
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将#&34;转回双引号?Flask渲染HTML转义问题求解

问题根因
  • 你的JSON处理逻辑存在错误:你定义的jsonData是普通字符串,对字符串执行json.dumps()会给整个字符串外层额外加一层引号和转义规则,后续的json.loads()执行后得到的还是原始的普通字符串,并没有被解析为可直接使用的Python字典/列表对象。
  • Flask默认使用的Jinja2模板开启了HTML自动转义机制,所有传入模板的字符串内容中的特殊字符(双引号、尖括号等)都会被转义为HTML实体编码,也就是你看到的"。
修复方法

1. 修正后端JSON生成逻辑

不要手动拼接JSON字符串,直接通过Python原生对象转合法JSON字符串:

import json

# 先定义符合你需求的Python列表/字典对象
raw_data = [{"id": "idStr", "name": "nameStr"}]
# 转换为合法JSON字符串后传入模板
prs = json.dumps(raw_data)

2. 模板中关闭对应变量的自动转义

在你渲染甘特图数据的Jinja2位置,使用safe过滤器关闭HTML转义即可保留原始双引号:

data = {{ prs|safe }}

注意:仅在你确认输出的内容为安全的自有数据、不存在恶意注入风险时使用safe过滤器,避免产生XSS安全漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:27:04