5.Flaskのテンプレートでリストとループを使ってみよう

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

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。