Djangoでテンプレートエンジンを使って、リストを定義してループで表示してみましょう。リストをテンプレートに渡すには文字列を渡した時と同じように contextという名前の辞書に定義して render関数の第三引数に指定します。
目次
views.pyにリストを作成
/bbsディレクトリに用意した views.py に次のコードを記述します。
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
context = {
'name': 'Django',
'members': ['秋原', '今井', '上田'] # context辞書にリストを定義
}
return render(request, 'bbs/index.html', context) # テンプレートに渡す
テンプレート側にPythonの処理を書く
このリストをテンプレート側で取り出してみましょう。
Djangoではテンプレート側でもPythonのコードを書くことができます。テンプレート側でPythonのコードを書く際はその部分を {% %} で囲みます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Djangoを使ってみよう!</title>
</head>
<body>
<h1>{{ name }}で作る1行掲示板</h1>
{% for member in members %}
<p>{{ member }} くんが登校しました。</p>
{% endfor %}
</body>
</html>
インデントは付いていますがPythonのコード内にインデントがあるわけではないため、for文の終わりを示す endfor が必要となります。
このコードはviews.pyからmembersリストを受け取り、要素を1つずつ取り出してfor文によるループ処理で出力します。
Djangoコマンドを使ってアプリケーションを実行し、ブラウザで確認してみましょう。
http://127.0.0.1:8000/bbs/ にアクセスします。

ちゃんとループ処理でmembersリストの要素を使った繰り返し処理ができています。







