Django jak każdy inny popularny framework stosuje do tworzenia kodu wzorzec MVC, ale z małą różnicą. W Django nie mamy Model-View-Controller a MTV, czyli Model-Template-View. Model to nasza klasa reprezentująca konkretną tabelę w bazie danych. Template to zwykły szablon opisujący, View to nasz kontroler, w którym sterujemy działaniem aplikacji.

Ten wpis to będzie swego rodzaju wstęp do przedstawienia najważniejszych klas widoków jakie udostępnia Django. W tym poście zaczniemy od jednej z trzech podstawowych klas jaką jest klasa View.

View

Klasę można wywołać sobie poprzez django.views.generic.base.View

Klasa View to tzw. klasa bazowa, z której dziedziczą wszystkie inne klasy związane z wyświetlaniem widoków w Django. Możesz korzystać z tej klasy i dopisywać kolejne funkcjonalności z palca, albo skorzystać z gotowego widoku jak np. wyświetlanie formularza. Wszystko zależy od specyfiki problemu jaki potrzebujesz rozwiązać.

Przykład najprostszego widoku, dzięki któremu wyświetlisz klasyczne „hello world”.

from django.http import HttpResponse
from django.views import View

class MyView(View):

    def get(self, request, *args, **kwargs):
        return HttpResponse('Hello, World!')

Przekazanie widoku do URL:

from django.urls import path

from myapp.views import MyView

urlpatterns = [
    path('mine/', MyView.as_view(), name='my-view'),
]

W klasie View możesz użyć kilku metod, które odpowiadają za konkretne czynności z protokołu http:

['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

Po więcej informacji koniecznie odwiedź opis tej metody z dokumentacji: https://docs.djangoproject.com/en/2.1/ref/class-based-views/base/#view