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

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

Barbara Streisand
リリース: 2024-12-26 12:19:10
オリジナル
306 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート