我的模板是用于JS的
let SETTINGS = {{settings|tojson(4)}};
我的设置是一个字典{'name': 'Russian name Саша', 'id': 12345}
。如果我渲染它,我会得到:
let SETTINGS = {
"name": "Russian name \u0421\u0430\u0448\u0430",
"id": 12345
}
我需要获取非转义的 unicode 字符。我可以用同样的方式在 python 中使用
json.dumps(data, encure_ascii=False)
But tojson()
过滤器只接受一个参数(缩进)。
有一种方法可以提供剩余参数tojson()
filter.
从 Jinja 2.9 开始policies https://jinja.palletsprojects.com/en/2.11.x/api/#policies可以在影响过滤器和其他模板构造行为的环境中进行配置。可以通过更改策略属性的一些键来完成。
对于你的情况有json.dumps_kwargs
政策。这是你必须做的:
env = jinja2.Environment()
env.policies['json.dumps_kwargs']['ensure_ascii'] = False
此修改后的环境不会转义 unicode 符号。
结果可以在 JS 中安全使用,无需额外转义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)