技術雑記帳兼日記帳

AWS、Python、Terraformの使い方をコッソリ

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で表示する処理を作ってみるのも面白いかもしれない。