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

如何从Django后端添加自定义(动态)JavaScript?解决转义异常

解决Django模板中转义自定义JavaScript的问题

这问题我之前踩过坑!Django出于安全考虑,默认会自动转义模板变量里的特殊字符(比如引号、尖括号这些),所以你传的JS代码才会被转成&quot这类奇怪的实体字符,导致代码失效。给你两个靠谱的解决办法:

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

直接在模板里给你的JS变量加上safe过滤器,告诉Django这段内容是安全的,不需要转义:

<script> {{ js_script|safe }} </script>

这个方法简单直接,适合只是偶尔需要关闭转义的场景。

方法二:在视图中用mark_safe标记内容

如果你希望在视图层面就处理好,避免每次在模板里加过滤器,可以用Django提供的mark_safe函数:
首先在视图文件顶部导入:

from django.utils.safestring import mark_safe

然后把你的JS代码用mark_safe包裹:

js = mark_safe("JavaScript which i want to add")
js_ = {'js_script': js}
return render(request, 'html.html', context=js_)

这样传到模板里的内容就会被识别为安全的,直接渲染成原始JS代码。

重要提醒

不管用哪种方法,一定要确保你传入的JS代码是完全可信的——比如是你自己编写的固定代码,而不是来自用户输入的内容。如果是用户提交的内容,直接关闭转义会有XSS攻击的风险!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:52:33