0Pricing
Django Academy · Lekcja

Obsługa metod get i post

Kierowanie czasowników HTTP do metod klas

Obsługa metod get i post to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 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.

Czasowniki stają się metodami

W CBV każdy czasownik HTTP odpowiada metodzie. Żądanie GET uruchamia metodę get, a żądanie POST — metodę post.

Utwórz klasę pochodną widoku bazowego

Aby uzyskać pełną kontrolę nad czasownikami, utwórz klasę pochodną bazowej klasy View. Następnie zdefiniuj dokładnie te metody, które mają być obsługiwane.

class ContactView(View):
    pass

Zdefiniuj metodę get

Dodaj metodę get, aby wyświetlić stronę, na przykład pusty formularz kontaktowy. Przyjmuje ona self i request oraz zwraca odpowiedź.

def get(self, request):
    return render(request, "contact.html")

Zdefiniuj metodę post

Dodaj metodę post, aby obsługiwać przesłane dane. Django automatycznie kieruje tutaj żądania POST.

def post(self, request):
    name = request.POST.get("name")
    return redirect("thanks")

Koniec ze sprawdzaniem method

Nie trzeba już pisać if request.method == "POST". Django samo kieruje żądanie do właściwej metody na podstawie czasownika.

dispatch kieruje żądaniem

W tle metoda o nazwie dispatch sprawdza czasownik i wywołuje pasującą metodę. Rzadko trzeba odwoływać się do niej bezpośrednio.

Nieobsługiwane czasowniki zwracają 405

Jeśli żądanie używa czasownika, którego Państwo nie zdefiniowali, Django automatycznie zwraca 405 Method Not Allowed. Domyślnie jest to bezpieczne rozwiązanie.

Klasyczny przepływ GET, a następnie POST

Typowy schemat wygląda tak: get wyświetla formularz, użytkownik go przesyła, a post go przetwarza. Dwie metody, jedna przejrzysta klasa.

Przekierowanie po POST

Po pomyślnym wykonaniu post zwróć redirect zamiast renderować stronę. Zapobiega to wielokrotnemu przesłaniu formularza po odświeżeniu.

Udostępnianie stanu przez self

Obie metody znajdują się w tej samej klasie, więc można przechowywać wspólne wartości w self lub wywoływać zdefiniowane pomocnicze metody.

Podłącz widok za pomocą as_view

Skonfiguruj trasę dla klasy w zwykły sposób za pomocą as_view(). Django tworzy mechanizm obsługi żądań, a metody get i post po prostu działają.

path("contact/", ContactView.as_view())

Szybkie sprawdzenie

Co dzieje się po wysłaniu żądania POST do CBV, w którym zdefiniowano tylko get?

Podsumowanie: get i post

Zobaczyli Państwo, jak CBV mapują czasowniki na metody: get wyświetla, post obsługuje, dispatch kieruje żądaniem, a niezdefiniowane czasowniki zwracają 405. Bez ręcznego sprawdzania metod. 🚦

Często zadawane pytania

Czy lekcja „Obsługa metod get i post” jest bezpłatna?

Tak — pełny tekst „Obsługa metod get i post” 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 „Obsługa metod get i post”?

Kierowanie czasowników HTTP do metod klas Ć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 3 z 4.

Ile czasu zajmuje lekcja „Obsługa metod get i post”?

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

  1. Od widoków funkcyjnych do klas widoków
  2. TemplateView i get_context_data
  3. Obsługa metod get i post
  4. Mixiny i as_view()
← Powrót do Django Academy