PythonのFlaskで配列と辞書をテンプレートに渡す方法です。
PythonのFlaskで配列と辞書をテンプレートに渡す
Python側で作成した配列や辞書の変数をFlask(jinja2)のテンプレートで受けるにはFor文を使って簡単に受け取ることができます。
PythonのFlaskで配列を受け取る
PythonのFlaskで配列を受け取るには配列の長さ分、処理を繰り返す必要があります。
まずはPython側です。
@app.route( "/sample.html", methods=[ "GET" ] ) def sample_page(): ar = [] ar.append( "No.1" ) ar.append( "No.2" ) ar.append( "No.3" ) return render_template( "sample.html" , array=ar)
配列を準備します。
次は実際に表示する側(Flask(jinja2))です。
<!doctype html> <html> <head> </head> <body> {%- for i in range( array|length) %} <div>{{i}}番目={{ array[i] }}</div> {%- endfor %} </body> </html>
これで実行すると
0番目=No.1 1番目=No.2 2番目=No.3
と表示できます。
PythonのFlaskで辞書を受け取る
PythonのFlaskで辞書を受け取るには辞書のアイテム数分、処理を繰り返す必要があります。
@app.route( "/sample.html", methods=[ "GET" ] ) def sample_page(): dic = {} dic[ "name" ] = "name1" dic[ "age" ] = "20" return render_template( "sample.html" ,dic=dic )
辞書を表示するHTMLは
<!doctype html> <html> <head> </head> <body> {%- for item in dic %} <div>{{ dic[item] }}</div> {%- endfor %} </body> </html>
で実行すると
name1 20
と表示されます。
まとめ
Python側で作成した配列や辞書の変数をFlask(jinja2)のテンプレートで受けるにはFor文を使って簡単に受け取ることができます。