Rozgałęzianie logiki według request.method
Wyświetlaj formularz przy GET i przetwarzaj go przy POST.
Rozgałęzianie logiki według request.method to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 2 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 Flask Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Flask Academy zawiera 4 lekcji w sumie.
Jedna trasa, dwa zadania
Trasa akceptująca zarówno GET, jak i POST często musi działać inaczej dla każdej z tych metod. Można to obsłużyć, sprawdzając, która metoda dotarła.
Obiekt request
Flask udostępnia globalny obiekt request, który opisuje przychodzące żądanie. Wystarczy zaimportować go raz i używać wewnątrz dowolnego widoku.
from flask import requestOdczyt request.method
Atrybut request.method przechowuje metodę bieżącego żądania jako ciąg znaków, na przykład "GET" lub "POST".
if request.method == "POST":
print("handling a form")Rozgałęzianie według metody
Należy umieścić logikę w instrukcji if, która sprawdza request.method. Jedna gałąź wyświetla formularz, a druga przetwarza przesłane dane.
Klasyczny wzorzec formularza
Najczęstszy schemat wygląda tak: dla GET renderuje się pusty formularz, a dla POST odczytuje odpowiedzi i wykonuje odpowiednie działania.
@app.route("/contact", methods=["GET", "POST"])
def contact():
if request.method == "POST":
return "saved"
return "show form"GET nie powinien zmieniać danych
Gałąź GET powinna być tylko do odczytu. Żądanie GET nigdy nie powinno tworzyć ani modyfikować rekordów, ponieważ przeglądarki mogą je swobodnie ponawiać.
POST wykonuje operacje
Operacje zapisu, zapisywanie danych i efekty uboczne należy umieścić w gałęzi POST. Dzięki temu modyfikacje są powiązane z celowym przesłaniem formularza.
Porównuj ciągi znaków dokładnie
Zawsze należy porównywać z dokładną wartością zapisaną wielkimi literami. request.method ma wartość "POST", nigdy "post", więc sprawdzenie małymi literami zakończy się niepowodzeniem bez wyraźnego komunikatu.
else jako gałąź domyślna
Przypadek GET można potraktować jako naturalną gałąź else. Gdy metoda nie jest POST, należy zwrócić widok formularza, aby strona zawsze mogła się wyrenderować.
Pomiń sprawdzanie obsługiwane przez Flask
Nie trzeba sprawdzać metody, której nie dozwolono. Flask blokuje metody unlisted przed uruchomieniem kodu, więc docierają tylko metody wymienione na liście.
Nie rozbudowuj nadmiernie gałęzi
Jeśli poszczególne gałęzie stają się zbyt duże, należy wywołać z instrukcji if helper functions. Widok pozostanie wtedy przejrzystym dispatcherem między GET i POST.
Szybkie sprawdzenie
Wybierz gałąź, która powinna zmieniać dane.
Podsumowanie
Używaj request.method do rozgałęziania: renderuj formularz dla GET, a dla POST przetwarzaj dane i zapisuj je. GET powinien służyć tylko do odczytu, a POST do wprowadzania zmian. Świetna praca! 🙌
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 „Rozgałęzianie logiki według request.method” jest bezpłatna?
Tak — pełny tekst „Rozgałęzianie logiki według request.method” 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 Flask Academy, przejdź na CoddyKit PRO. Kurs Flask Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Rozgałęzianie logiki według request.method”?
Wyświetlaj formularz przy GET i przetwarzaj go przy POST. Ćwiczysz Flask 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ąć Flask Academy?
Nie wymagamy żadnego doświadczenia. Flask 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 2 z 4.
Ile czasu zajmuje lekcja „Rozgałęzianie logiki według request.method”?
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 Flask Academy?
Tak. Każda lekcja Flask 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
- Deklarowanie dozwolonych metod na trasie
- Rozgałęzianie logiki według request.method
- Odczytywanie danych POST z treści żądania
- Wyjaśnienie błędu 405 Method Not Allowed