将unicode字符串从django传递到javascript
我的数据中有一堆unicode字符串,我需要将它们从django视图传递到模板,以便在JavaScript脚本中使用,JavaScript脚本将其来回传递到web 问题是我希望字符串以JavaScript-unicode形式表示,但我从python获得前缀为u的字符串 例如,对于字符串męczyźni,Python将其存储为u'm\u0119\u017cczy\u017ani',但当它被传递到模板时,它不会删除u前缀,这会在处理它时给JavaScript带来问题。我希望它只是'm\u0119\u017cczy\u017ani',以便模板中的JavaScript代码可以使用它 我尝试使用urqluote、smart_-unicode、force_-unicode,但没有找到解决方案,甚至没有破解将unicode字符串从django传递到javascript,javascript,python,django,unicode,Javascript,Python,Django,Unicode,我的数据中有一堆unicode字符串,我需要将它们从django视图传递到模板,以便在JavaScript脚本中使用,JavaScript脚本将其来回传递到web 问题是我希望字符串以JavaScript-unicode形式表示,但我从python获得前缀为u的字符串 例如,对于字符串męczyźni,Python将其存储为u'm\u0119\u017cczy\u017ani',但当它被传递到模板时,它不会删除u前缀,这会在处理它时给JavaScript带来问题。我希望它只是'm\u0119\u
我该怎么办 编辑:Django 1.7+。而不是
from django.utils import simplejson
写
然后使用json
而不是simplejson
您可能正在打印数据dict的python repr,并尝试用javascript解析它:
{{ your_python_data }}
var your_data = {{ json_data_string }};
相反,您可以以json格式导出数据:
from django.utils import simplejson
json_data_string = simplejson.dumps(your_data)
并直接在javascript中加载数据:
{{ your_python_data }}
var your_data = {{ json_data_string }};
您还可以制作一个:
在模板中:
{% load your_template_tags %}
{{ your_python_data|as_json }}
请注意,使用XSS时应小心,如果某些“数据”来自用户输入,则应对其进行清理。是否尝试显示视图和模板代码。@BurhanKhalid使用
escapejs
也会转换单引号。但这是一个很好的暗示。谢谢。谢谢@jpic,这很有效。我只是需要添加一个安全的过滤器来正确渲染它。现在,我的代码是这样的:{{your_python_data}as_json | safe}
Nice,更新答案。。别忘了,显然,simpleJson不受欢迎。您知道是什么取代了它吗?不再包括本机json模块django 1.7+simplejson。而是使用json
-模块。我会建议编辑。