1. ホーム
  2. パイソン

django の render_to_response()

2022-03-02 22:07:54
テンプレートを読み込み、コンテキストを埋めて、解析した結果をHttpResponseオブジェクトとして返すと、次のようになります。



はあまりにも一般的なので、 Django はこれら全てを一行のコードで行うためのショートカットを提供します。そのショートカットは



という関数は、 django.shortcuts モジュールの render_to_response() と呼ばれています。たいていの場合、この関数は



テンプレートを手動で読み込んで Context や HttpResponse オブジェクトを作成するのではなく、 render_to_response() を使用します。



render_to_response()で書き直したcurrent_datetimeの例です。



from django.shortcuts import render_to_response



インポート datetime



def current_datetime(request):



now = datetime.datetime.now()



return render_to_response('current_datetime.html', {'current_date': now})



大きな変化!?get_template、Template、Context、HttpResponseをインポートする必要がなくなりました。その代わりに、 django.shortcuts.render_to_response をインポートしています。current_datetime 関数では、まだ now の計算をしていますが、テンプレートの読み込み、コンテキストの作成、テンプレートの解析、 HttpResponse の作成は全て render_to_response() の呼び出しの中で行われます。render_to_response()はHttpResponseオブジェクトを返すので、ビューではその値だけを返せばよいのです。



render_to_response() の第一引数には、使用するテンプレート名を指定します。第2引数を与える場合は、テンプレートのContextを作成するために使用される辞書でなければなりません。第2引数が与えられない場合、render_to_response() は空の辞書を使用します。