DjangoのGenericViewって何だろう?って思ってたので、それを調べました。
これはその調べた時のメモです。
とりあえず、僕は調べる時にこのあたりを読んでいました。
公式ドキュメントです。 Introduction to class-based views | Django documentation | Django
印象としては、JavaのServletみたいなやつだなあと思いました。
ジェネリックビューの経緯としては、以下のように見えます。
- 最初、Djangoではviewは関数で定義するようにしていた。
- 関数だけだと、拡張しにくいし、流用しにくいから、何とかならんのか。という話になった。
- クラスベースビューを作った。クラスベースビューがGeneric Viewと呼ばれていた
- 最近では、Generic Viewとは呼ばれず、クラスベースビューとなっている。
古いバージョンを見てみると、Django1.8だとGeneric Viewのパッケージは、以下にあります。
from django.views.generic import View
でも、Django1.11だと以下にあります。
from django.views import View
パッケージが移動されたんですね。
あとは普通に以下のような感じで、httpのmethodに対して、実行する処理を分けられます。
class MyView(View): def get(self, request): return HttpResponse('Hello My View . GET') def post(self, request): return HttpResponse('Hello My View . POST')