Flaskのテンプレートエンジンを使って、リストを定義してループで表示してみましょう。リストをテンプレートに渡すには変数と同じように render_template の引数に指定します。
Flaskプロジェクトのトップレベルディレクトリ(ここではflask-tutorial)に用意した hello.py に次のコードを記述します。
from flask import Flask, render_template app = Flask(__name__) @app.route("/") def index(): name = "Flask" members = ["秋原", "今井", "上田"] # リストを定義 return render_template("index.html", name_value = name, members = members) # membersリストをmembersという名前でテンプレートに渡す
このリストをテンプレート側で取り出してみましょう。
テンプレート用のディレクトリのindex.htmlファイルに次のように記述します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Flaskを使ってみよう!</title> </head> <body> <h1>{{ name_value }}でHello World!</h1> {% for member in members: %} <p>{{ member + "くんが登校しました。"}}</p> {% endfor %} </body> </html>
if文の時と同様、インデントは付いていますがPythonのコード内にインデントがあるわけではないため、for文の終わりを示す endfor が必要となります。
このコードはhello.pyからmembersリストを受け取り、要素を1つずつ取り出してfor文によるループ処理で各要素に文字列を連結して出力します。
flaskコマンドを使ってアプリケーションを実行し、ブラウザで確認してみましょう。
http://127.0.0.1:5000/ にアクセスします。
ちゃんとループ処理でmembersリストの要素を使った繰り返し処理ができています。