如何在 javascript 中将 ' 转换为引号?



我正试图将一个带有字符串值的python列表从views.py传递到模板,在该模板中,javascript将字符串值用于饼图的标签(plotly(。问题是,当在前端收到列表时,列表得到的是引号的六进制代码,它是"而不是引号。如何将其转换为报价?以下是片段:

var trace1 = {
x: {{labels}},
y: {{values}},
marker:{
color: ['rgba(204,204,204,1)', 'rgba(222,45,38,0.8)', 'rgba(204,204,204,1)', ]
},
type: 'bar'
};

现在,我得到"标签"的值为:

['One', 'Two', 'Three']

代替:

['One','Two','Three']

只是想知道有没有什么方法可以轻松避免这种情况,而不是使用字符串替换方法?

出于安全考虑,Django在呈现模板时会转义引号(以及许多其他字符(。

如果你确信这些数据是无害的(即不是你的网站用户输入的(,那么你可以使用模板中的safe过滤器:

{{ my_list | safe }}

safe过滤器告诉Django数据是可信的,因此它不会逃脱它


警告:如果模板上显示的数据是由网站用户提交的,请不要使用safe过滤器。这可能会导致XSS攻击。

如果您需要对用户提交的数据使用safe,则应首先对数据进行消毒,例如使用漂白剂或django漂白剂。

最新更新