Flask Academy · Lekcja

Wczytywanie i walidacja ładunków wejściowych

Deserializuj dane żądania zgodnie z regułami walidacji.

Lekcja 4 z 413 kroki

Wczytywanie i walidacja ładunków wejściowych to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 4 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.

Definicja wczytywania

W drugą stronę — konwersja przychodzącego JSON do zaufanych danych Pythona — nazywa się loadingiem. Schemat zarówno analizuje dane, jak i sprawdza ich poprawność.

Wywołanie load

Przekaż dict żądania do metody load schematu. Metoda zwaliduje każde pole i zwróci czyste dane, zgłaszając błąd, jeśli coś jest nieprawidłowe.

data = user_schema.load(request.get_json())

Wymagane znaczy wymagane

Jeśli brakuje pola oznaczonego jako required, load odrzuci dane. Dzięki temu logika biznesowa nigdy nie otrzyma niekompletnych danych wejściowych.

Typy są egzekwowane

Wyślij ciąg znaków tam, gdzie oczekiwany jest Int, a load go odrzuci. Typ pola staje się gwarancją, a nie tylko dokumentacją.

Przechwytywanie ValidationError

Gdy dane wejściowe nie przejdą walidacji, Marshmallow zgłosi ValidationError. Umieść load w bloku try-except, aby móc zwrócić pomocną odpowiedź 400.

from marshmallow import ValidationError

Odczytywanie komunikatów o błędach

Wyjątek zawiera dict messages z kluczami odpowiadającymi polom. Zwróć go jako JSON, aby klienci dokładnie wiedzieli, które dane wejściowe były nieprawidłowe i dlaczego.

return jsonify(err.messages), 400

Dodawanie walidatorów pól

Wbudowane funkcje pomocnicze validate zaostrzają reguły, na przykład wymagając minimalnej długości lub zakresu wartości, bez konieczności pisania własnych kontroli.

name = fields.Str(validate=validate.Length(min=2))

Pola load_only

Hasło powinno być akceptowane na wejściu, ale nigdy zwracane. Oznacz je jako load_only, aby load je odczytywał, a dump pomijał.

password = fields.Str(load_only=True)

Nieznane klucze są odrzucane

Domyślnie dodatkowe klucze w danych wejściowych powodują błąd. Ta ścisłość uniemożliwia klientom przemycanie pól, których nigdy nie zamierzano akceptować.

Od czystych danych do modelu

Po pomyślnym wykonaniu load masz zwalidowane dane. Użyj ich do utworzenia nowego modelu, często przekazując je bezpośrednio do konstruktora za pomocą rozpakowania.

user = User(**data)

Oba kierunki obsłużone

Teraz jeden schemat zrzuca obiekty na zewnątrz i wczytuje dane wejściowe do środka. Endpointy współdzielą jeden zaufany kontrakt dla całego zasobu.

Szybkie sprawdzenie

Przychodzące dane nie zawierają wymaganego pola.

Podsumowanie

Użyj load do walidowania i analizowania przychodzącego JSON, przechwytuj ValidationError, aby zwracać przejrzyste odpowiedzi 400, oraz dodaj walidatory i load_only, by zapewnić bezpieczne i solidne dane wejściowe.

Bezpłatny start

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 „Wczytywanie i walidacja ładunków wejściowych” jest bezpłatna?

Tak — pełny tekst „Wczytywanie i walidacja ładunków wejściowych” 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 „Wczytywanie i walidacja ładunków wejściowych”?

Deserializuj dane żądania zgodnie z regułami walidacji. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Wczytywanie i walidacja ładunków wejściowych”?

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

  1. Dlaczego ręcznie tworzony JSON zawodzi
  2. Definiowanie schematu dla modelu
  3. Serializowanie obiektów do JSON
  4. Wczytywanie i walidacja ładunków wejściowych
← Powrót do Flask Academy