ホームページ >バックエンド開発 >Python チュートリアル >Flask から Jinja でレンダリングされた JSON データを使用するときに JavaScript の構文エラーを回避するにはどうすればよいですか?

Flask から Jinja でレンダリングされた JSON データを使用するときに JavaScript の構文エラーを回避するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 12:19:10327ブラウズ

How to Avoid JavaScript SyntaxErrors When Using Jinja-Rendered JSON Data from Flask?

Jinja でレンダリングされたデータでの JavaScript SyntaxError

問題:

JSON データを Flask から Jinja テンプレートに渡すとき、 JavaScript をレンダリングすると、JSON.parse() がエラーで失敗します。 SyntaxError.

根本的な原因:

Flask はセキュリティの脆弱性を防ぐために HTML テンプレートでレンダリングされたデータをエスケープし、HTML テンプレート内の JSON データに影響を与えます。 JavaScript.

解決策:

tojson フィルターを使用します:

Flask の tojson フィルターは、Python オブジェクトを安全な JSON とマークに変換します。データの安全性レンダリング:

return render_template("tree.html", tree=tree)
var tree = {{ tree|tojson }};

代替オプション:

  • 安全なフィルターまたはマークアップ ラッピング: データがすでに JSON である場合、安全なフィルターを使用するか、ラップしてください。 Markup.
return render_template("tree.html", tree=Markup(json.dumps(tree)))
var tree = {{ tree }};
  • Direct Python Data: データが JavaScript を目的としていない場合は、JSON 変換せずにテンプレート内で Python データを直接使用します。 .
return render_template("tree.html", tree=tree)
{% for item in tree %}
    <li>{{ item }}<br /></li>
{% endfor %}

以上がFlask から Jinja でレンダリングされた JSON データを使用するときに JavaScript の構文エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。