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

Django如何将Python字符串转为JavaScript字符串并渲染到网页

Django视图传递HTML字符串到前端JS转义报错解决方案

问题原因

Django模板默认开启自动HTML转义,所有输出的变量中的特殊字符(<、>、&、引号等)会被转义为HTML实体,直接嵌入<script>标签的JS代码中时,就会触发Unexpected token '&'这类语法错误。另外你原有代码存在变量名不匹配、多余语法符号的问题,也会导致运行异常。

修复步骤

1. 修正基础语法问题

视图函数中传递的上下文键为html_sss,模板JS中需使用对应名称,同时删除JS代码里多余的闭合大括号。

2. 选择合适的转义处理方案

方案一:使用escapejs过滤器(推荐,安全)

escapejs是Django专门为输出到JS场景提供的过滤器,会将字符串转义为合法的JavaScript字符串字面量,同时规避XSS注入风险,适配所有场景:

<p id="chatLine">get this working!!</p>

<script>
// 变量名与视图对应,添加escapejs过滤器,外层包裹引号
var html_ss = "{{ html_sss|escapejs }}";

setTimeout(myTimeout2, 2000) 

function myTimeout2() {
  document.getElementById("chatLine").innerHTML = "html_ss  " + html_ss;
}
</script>

方案二:使用safe过滤器(仅适用于完全可信内容)

如果你100%确认要传递的HTML字符串没有用户输入的恶意内容,可以用safe过滤器关闭Django的自动转义:

var html_ss = "{{ html_sss|safe }}";

注意:该方案存在XSS注入风险,若字符串包含用户提交内容,禁止使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:01