libro
www.tuyano.com
初心者のためのDjango 2.0入門

テンプレートを利用しよう (2/6)

作成:2017-12-23 08:38
更新:2017-12-23 08:38

■ビュー関数を修正する

では、続いてビュー関数を修正しましょう。「hello」内のviews.pyを開き、そこに記述してあるindex関数を下のリスト欄のように書き換えて下さい。

今回は、まずcontextという辞書を用意しています。ここには、'msg' というキーの値が用意されていますね。

この辞書は、テンプレート側に渡す各種の値を設定するものです。先ほど、index.htmlの中に以下のような分を記述してあったのを思い出して下さい。
<p>{{msg}}</p>

この {{msg}} というのが、contextリスト内に用意した 'msg' の値です。テンプレートでは、このように、ビュー関数側から渡された値を {{ 値名 }} というように記述して出力させることができるのです。

テンプレートに渡す辞書を用意したら、以下のようにしてテンプレートをレンダリングしています。
return render(request, 'hello/index.html', context)

renderというのは、先にHttpResponseインスタンスを作成して返したもののショートカット関数です。テンプレートを利用する場合、テンプレートファイルをロードし、それをレンダリングした結果をHttpResponseに設定する、といった作業をしないといけません。そこで、それらを自動で行ってくれる関数を用意してあるのですね。

このrender関数は、以下のように呼び出します。
render( [HttpRequest] , テンプレート名 , 辞書 )

第1引数は、この関数に渡されているHttpRequestをそのまま渡します。第2引数に、使用するテンプレート名を指定します。これは、「templates」フォルダ内のパスとして記述して下さい。ここでは「hello」フォルダ内にindex.htmlという名前で用意してあるので、'hello/index.html' となります。第3引数には、テンプレート側に渡す値をまとめた辞書(ここでは、context)を指定します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

# from django.shortcuts import render を追記しておく

def index(request):
    context = {
        'msg': 'this is sample page.',
    }
    return render(request, 'hello/index.html', context)
※関連コンテンツ

「初心者のためのDjango 2.0入門」に戻る