Dam*_*mir 4 javascript python templates jinja2
如何将字典从 Jinja2(使用 Python)传递给 Javascript?我有 Python 字典,当我渲染模板时,我需要在 Javascript 中使用该字典,我是从 Python 传递过来的
template = JINJA_ENVIRONMENT.get_template('sm.html')
self.response.write(template.render(values=values))
Run Code Online (Sandbox Code Playgroud)
但是如何将它们存储在 html 页面内的 Javascript 变量中。
使用json模块将Python数据转化为JSON数据;JSON 是 JavaScript * 的一个子集,作为 JavaScript 文字效果很好:
import json
js_value = json.dumps(python_value)
Run Code Online (Sandbox Code Playgroud)
并js_value在模板中呈现。
如果您也需要 JSON 数据是HTML 安全的,则需要添加一些替换:
js_value = (json.dumps(python_value)
.replace(u'<', u'\\u003c')
.replace(u'>', u'\\u003e')
.replace(u'&', u'\\u0026')
.replace(u"'", u'\\u0027'))
Run Code Online (Sandbox Code Playgroud)
* JSON 允许使用JavaScript 文字不能包含的U+2028 和 U+2029 字符,但该json.dumps()函数默认会转义所有非 ASCII 代码点,因此只要您不禁用ensure_ascii就可以了。
| 归档时间: |
|
| 查看次数: |
6238 次 |
| 最近记录: |