我的模板用于JS
let SETTINGS = {{settings|tojson(4)}};
我的设置是一个dict {'name': 'Russian name Саша', 'id': 12345}
。如果我渲染它,我会得到:
let SETTINGS = {
"name": "Russian name \u0421\u0430\u0448\u0430",
"id": 12345
}
我需要得到非转义的unicode字符。同样的方法我可以在python中使用
json.dumps(data, encure_ascii=False)
但是tojson()
过滤器只接受一个参数(缩进)。
1条答案
按热度按时间rbl8hiat1#
有一种方法可以为
tojson()
过滤器提供rest参数。从Jinja 2.9开始,可以在环境中配置策略来影响过滤器和其他模板结构的行为。这可以通过改变policies属性的一些键来完成。
对于您的情况,存在
json.dumps_kwargs
策略。这是您必须执行的操作:此修改的环境将不会转义unicode符号。
结果可以安全地在JS中使用,无需额外转义。