Jinja2 を使用してテンプレート内の Flask から JavaScript にデータを渡すにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-27 21:58:01
オリジナル
981 人が閲覧しました

How to Pass Data from Flask to JavaScript in Templates Using Jinja2?

テンプレート内の Flask から JavaScript にデータを渡す

Flask アプリケーションの API からデータをフェッチするとき、その情報を、対応するテンプレートの JavaScript に追加します。この記事では、Jinja2 テンプレートの機能を活用してこれを実現する方法について説明します。

Flask では、render_template 関数を使用して HTML テンプレートに変数を渡すことができます。ただし、これらの変数を JavaScript で使用できるようにするには、追加の手順が必要です。

Flask で使用されるテンプレート エンジンである Jinja2 は、テンプレート内に Python 式を埋め込むことを可能にする構文を提供します。これは、JavaScript スクリプト内を含め、テンプレート内のどこでも {{ variable }} を使用できることを意味します。

たとえば、API から座標を取得する次の Flask ルートを考えてみましょう:

<code class="python">@app.route('/')
def get_data():
    events = api.call(get_event, arg0, arg1)
    geocode = event['latitude'], event['longitude']
    return render_template('get_data.html', geocode=geocode)</code>
ログイン後にコピー

対応するテンプレートでは、次のようにジオコード変数を JavaScript に渡すことができます:

<code class="html"><script>
var someJavaScriptVar = '{{ geocode[1] }}';
</script></code>
ログイン後にコピー

これにより、JavaScript コード内の someJavaScriptVar として geocode[1] の値にアクセスできるようになります。

または、ジオコード変数を配列として渡すために、テンプレートで配列定義を生成できます。

<code class="html"><script>
var myGeocode = ['{{ geocode[0] }}', '{{ geocode[1] }}'];
</script></code>
ログイン後にコピー

Jinja2 は、ループや if ステートメントなどのより高度な構造もサポートしています。複雑なデータ構造の生成を簡素化します。

さらに、tojson フィルターを使用してジオコード タプルを JSON 文字列に変換し、JavaScript での使用により適したものにすることができます。

<code class="html"><script>
var myGeocode = {{ geocode | tojson }};
</script></code>
ログイン後にコピー

これらの技術を使用すると、開発者は Flask と JavaScript の間でデータをシームレスに共有し、インタラクティブで動的な Web アプリケーションを実現できます。

以上がJinja2 を使用してテンプレート内の Flask から JavaScript にデータを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!