将数据从 Flask 传递到 JavaScript:处理 JSON 语法错误
尝试将 JSON 数据从 Flask 路由传递到 Jinja 模板,在渲染数据上调用 JSON.parse 时,您可能会遇到 SyntaxError。此错误通常在渲染过程中转义 JSON 字符时发生。
为了解决此问题,Flask 提供了 tojson 过滤器。当应用于数据时,它会自动将 Python 对象转储为 JSON 并将其标记为可以安全渲染。
这里是一个示例:
return render_template('tree.html', tree=tree)
<script> var tree = {{ tree|tojson }}; </script>
特殊情况的过滤器
如果 JSON 已经转储为字符串,则可以使用安全 在渲染之前过滤或包装 标记 中的字符串。
return render_template('tree.html', tree=json.dumps(tree))
<script> var tree = {{ tree|safe }}; </script>
Jinja 使用的替代方法
如果您直接在 Jinja 中处理数据而不将其传递给 JavaScript,则不需要JSON。只需传递实际的 Python 数据,而不调用 tojson.
return render_template('tree.html', tree=tree)
以上是将数据从 Flask 传递到 JavaScript 时如何避免 JSON 语法错误?的详细内容。更多信息请关注PHP中文网其他相关文章!