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リストの要素を使った繰り返し処理ができています。







