Od widoków funkcyjnych do klas widoków
Zrozumieć, po co istnieją CBV i kiedy ich używać
Od widoków funkcyjnych do klas widoków to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Dwa sposoby tworzenia widoków
Do tej pory widoki były zwykłymi funkcjami. Django pozwala również pisać widoki jako klasy, które porządnie grupują powiązaną logikę.
Czym jest widok oparty na klasie
Widok oparty na klasie (CBV) to po prostu klasa Pythona obsługująca żądanie. Django w tle przekształca ją dla Państwa w obiekt wywoływalny.
Problem z powtarzalnością
Widoki funkcyjne często powtarzają ten sam schemat: pobierają dane, budują kontekst i renderują szablon. CBV pozwalają ponownie używać tego schematu zamiast go kopiować.
Widok funkcyjny dla porównania
Oto znany widok funkcyjny. Przyjmuje żądanie i zwraca odpowiedź — wszystko w jednym bloku.
def home(request):
return render(request, "home.html")Ten sam widok jako klasa
W wersji klasowej dziedziczą Państwo po View i definiują osobną metodę dla każdego czasownika HTTP. Logika pozostaje taka sama, zmienia się tylko jej organizacja.
class HomeView(View):
def get(self, request):
return render(request, "home.html")Metody odpowiadają czasownikom HTTP
W CBV metoda get obsługuje żądania GET, a metoda post — żądania POST. Nie trzeba już tworzyć rozbudowanych instrukcji if sprawdzających request.method.
Dziedziczenie oznacza ponowne użycie
Ponieważ CBV są klasami, można tworzyć klasy pochodne i nadpisywać tylko to, co się zmienia. Wspólne zachowanie znajduje się raz, w klasie bazowej.
Django dostarcza widoki ogólne
Django zawiera gotowe widoki ogólne, takie jak ListView i DetailView. Obsługują one typowe schematy, dzięki czemu trzeba napisać bardzo niewiele kodu.
Kiedy funkcje nadal wygrywają
W przypadku małego, jednorazowego widoku funkcja często jest bardziej przejrzysta. Po CBV warto sięgać, gdy logika się powtarza lub staje się złożona.
Oba style podłącza się w urls.py
Oba style konfiguruje się w urls w ten sam sposób. CBV potrzebuje tylko as_view(), aby stać się obiektem wywoływalnym, do którego Django może kierować żądania.
path("", HomeView.as_view())Wybierz właściwe narzędzie
CBV nie są ani lepsze, ani gorsze — są po prostu inne. Wybór zależy od ponownego użycia: powtarzalne schematy sprzyjają klasom, a proste strony — funkcjom.
Szybkie sprawdzenie
Jaki jest główny powód istnienia widoków opartych na klasach?
Podsumowanie: funkcje a klasy
Poznali Państwo widoki oparte na klasach: klasy obsługujące żądania, mapujące metody na czasowniki HTTP i ponownie wykorzystujące logikę dzięki dziedziczeniu. Są świetne, gdy schematy się powtarzają. 🎯
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Od widoków funkcyjnych do klas widoków” jest bezpłatna?
Tak — pełny tekst „Od widoków funkcyjnych do klas widoków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Od widoków funkcyjnych do klas widoków”?
Zrozumieć, po co istnieją CBV i kiedy ich używać Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Od widoków funkcyjnych do klas widoków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Od widoków funkcyjnych do klas widoków
- TemplateView i get_context_data
- Obsługa metod get i post
- Mixiny i as_view()