テンプレート内の Flask から JavaScript にデータを渡す
Flask アプリケーションを使用する場合、Flask アプリケーションからデータを渡す必要がある状況に遭遇することがあります。ビュー テンプレート内の Python 辞書から JavaScript への変換。このデータは、Google Maps API などの JavaScript ライブラリで利用できます。この記事では、Flask から JavaScript にデータを効果的に渡すプロセスについて説明します。
これらの変数を JavaScript に渡すには、Flask の render_template 機能を利用できます。 Flask のテンプレート エンジンである Jinja2 を使用すると、{{ 変数 }} 構文を使用してデータ変数にアクセスできます。これは、テンプレート内の適切な場所で {{ 変数 }} を使用するだけで、Python 辞書データを JavaScript スクリプトに渡すことができることを意味します。
たとえば、次の例を考えてみましょう:
<code class="python">from flask import Flask, render_template app = Flask(__name__) @app.route('/') def get_data(): events = {'latitude': 40.7128, 'longitude': -74.0059} geocode = events['latitude'], events['longitude'] return render_template('get_data.html', geocode=geocode)</code>
この例では、緯度と経度の情報を含む「events」という名前の Python 辞書があります。このデータを「ジオコード」と呼ばれるタプルに抽出します。 render_template 関数を使用すると、「geocode」変数を「get_data.html」テンプレートに渡すことができます。
これで、HTML テンプレート内で、Jinja2 の構文を使用してデータにアクセスできるようになります。これを JavaScript スクリプトに組み込む方法は次のとおりです。
<code class="html"><head> <script> var geocode = '{{ geocode[1] }}'; </script> </head></code>
このコードは、経度の値を JavaScript のジオコード変数に割り当てます。
あるいは、「ジオコード」を次のように表すこともできます。テンプレート出力で配列定義を生成することで、JavaScript 内の配列を作成します。
<code class="html"><head> <script> var myGeocode = ['{{ geocode[0] }}', '{{ geocode[1] }}']; </script> </head></code>
このアプローチでは、JavaScript ロジックで簡単にアクセスして操作できる配列が作成されます。
Jinja2 は包括的なセットを提供します。出力の操作とカスタマイズを可能にする構成要素。たとえば、for ループを使用して前の例を短縮できます。
<code class="html"><head> <script> var myGeocode = [{% for value in geocode %}{{ value }}, {% endfor %}]; </script> </head></code>
Jinja2 の tojson フィルターを利用して、Python オブジェクトを JavaScript Object Notation (JSON) 文字列に変換することもできます。
<code class="html"><head> <script> var myGeocode = {{ geocode | tojson }}; </script> </head></code>
これらの手法を採用することで、Flask から JavaScript にデータを効果的に渡すことができ、Python と JavaScript コンポーネント間のシームレスな通信が可能になります。
以上がGoogle Maps API などの JavaScript ライブラリで使用するために、ビュー テンプレート内の JavaScript にデータを Flask アプリケーションから渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。