问题:
将 JSON 数据从 Flask 传递到 Jinja 模板时,渲染 JavaScript,JSON.parse() 失败并显示SyntaxError。
根本原因:
Flask 对 HTML 模板中呈现的数据进行转义以防止安全漏洞,从而影响 JavaScript 中的 JSON 数据。
解决方案:
使用tojson过滤器:
Flask 的 tojson 过滤器将 Python 对象转换为安全 JSON 并标记数据可以安全渲染:
return render_template("tree.html", tree=tree)
var tree = {{ tree|tojson }};
替代选项:
return render_template("tree.html", tree=Markup(json.dumps(tree)))
var tree = {{ tree }};
return render_template("tree.html", tree=tree)
{% for item in tree %} <li>{{ item }}<br /></li> {% endfor %}
以上是使用 Flask 中 Jinja 渲染的 JSON 数据时如何避免 JavaScript 语法错误?的详细内容。更多信息请关注PHP中文网其他相关文章!