如何将字典从 Jinja2(使用 Python)传递到 Javascript?我在 Python 中有字典,当我渲染模板时,我需要将字典与 Javascript 一起使用,我从 Python 传递
template = JINJA_ENVIRONMENT.get_template('sm.html')
self.response.write(template.render(values=values))
但是如何将它们存储在 html 页面内的 Javascript 变量中。
如何将字典从 Jinja2(使用 Python)传递到 Javascript?我在 Python 中有字典,当我渲染模板时,我需要将字典与 Javascript 一起使用,我从 Python 传递
template = JINJA_ENVIRONMENT.get_template('sm.html')
self.response.write(template.render(values=values))
但是如何将它们存储在 html 页面内的 Javascript 变量中。
使用该json
模块将 Python 数据转换为 JSON 数据;JSON 是 JavaScript *的一个子集,可以作为 JavaScript 文字使用:
import json
js_value = json.dumps(python_value)
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'))
* JSON 允许JavaScript 文字不能包含的U+2028 和 U+2029 字符json.dumps()
,但该函数默认转义所有非 ASCII 代码点,所以只要你不禁用ensure_ascii
你就可以了。
您想将其存储为Json。这是 javascript 的本机格式,因此您可以将其直接传递给变量。