Pocket

Django には関数ベースビューとクラスベースビューの2種類あります。

クラスベースビューにはDjango標準として提供されている汎用クラスビューというのがあり、目的ごとに有効活用できるクラスが用意されており、それらのクラスを継承して使用することができます。

その汎用クラスビューの中でも一番基本でシンプルなクラスビューがTemplateViewです。TemplateViewを使えばシンプルに数行でビューの処理を記述することもできますし、各メソッドをオーバーライドして詳細に処理を記述することも可能です。

以下のような感じでTemplateViewは書きます。

from django.views.generic import TemplateView
from django.http          import HttpResponse

class IndexView(TemplateView):
    template_name = 'index.html'

    def dispatch(self, request, *args, **kwargs):
        return super().dispatch(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context['data'] = 'Context Data'
        return context

    def get(self, request, *args, **kwargs):
        return super().get(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return HttpResponse(200)

Pocket

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事