flask テンプレート 置換とループ
はじめに
flaskのテンプレート(テンプレートエンジン「Jinja2」)を使って 簡単なループと置換処理を解説する。
準備
下記のファイルを作成する。
- render.py
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/start/') def login(): messageArray = ['start', 'end', '開始', '終了'] return render_template('body.html', messages=messageArray) if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=80)
- body.html
<body> {% for message in messages %} <p>{{ message }}</p> {% endfor %} </body>
置換
messageArrayがfor文のリスト要素のように置換されて、message置き換わり表示されている。
list型の内容をいっぺんに表示するのに便利。
クラスにリストを持たせれば、明細表示するような処理も簡単に実装できる。
{% for list1 in list %} {{ list1.value }} {% for list2 in list1.list %} {{ list2.value }} {% endfor %} {% endfor %}
まとめ
書き方次第だが、forと置換の組み合わせでテーブルを自動で生成できるので、DBのテーブルのような要素表示にも使える。
テーブル指定したらテーブルの内容をHTMLで表示する処理を作ってみるのも面白いかもしれない。