Jak zdefiniować wymagane pola w Pydantic

Jak Zdefiniowac Wymagane Pola W Pydantic



Pole wymagane to pole, które musi występować w modelu danych. Pola te są niezbędne i nie mogą pozostać puste, gdyż są niezbędne do prawidłowego funkcjonowania lub zakończenia procesu. Jeśli wymagane pole nie ma podanej wartości, Pydantic zgłosi wyjątek ValueError. Pola można definiować jako pola wymagane na różne sposoby. Jednak Pydantic domyślnie ustawia wszystkie pola modelu danych jako „wymagane”. W tym artykule pokażemy, jak zdefiniować wymagane pola w Pydantic. Omówimy również kilka dobrych wskazówek dotyczących korzystania z wymaganych pól.

Korzyści z używania pól wymaganych

Korzystanie z wymaganych pól w Pydantic ma kilka zalet.

  • Zapewnienie kompletności danych: Pola wymagane pomagają nam zapewnić, że nasze modele danych są kompletne i prawidłowe. Może to pomóc w zapobieganiu błędom w kodzie i przetwarzaniu danych.
  • Zapobieganie złośliwym wprowadzaniom: Wymaganych pól można również użyć, aby uniemożliwić złośliwym użytkownikom wprowadzenie nieprawidłowych danych do Twojego systemu.
  • Zwiększanie czytelności kodu: Możesz poprawić czytelność i zrozumienie swojego kodu, korzystając z wymaganych pól.

Jak zdefiniować wymagane pola w Pydantic

W Pydantic istnieją trzy metody definiowania pola jako pola wymaganego. Przyjrzyjmy się szczegółowo każdemu z nich.







Korzystanie z adnotacji

Najprostszym sposobem zdefiniowania wymaganego pola w Pydantic jest użycie adnotacji. Korzystając z adnotacji, rodzaju metadanych syntaktycznych, możesz dodać więcej szczegółów na temat zmiennych i atrybutów klas. W Pydantic adnotacje służą do wskazywania oczekiwanego typu danych pola i domyślnie wszystkie pola z adnotacjami są uważane za wymagane, dopóki nie ustawisz pola lub pól jako opcjonalnego.



z pydantyczny import Model podstawowy

klasa Osoba ( Model podstawowy ) :

pełna nazwa: ul

wysokość: platforma

e-mail : ul

W tym przykładzie pełne imię i nazwisko, wzrost i adres e-mail są polami wymaganymi. Jeśli utworzysz instancję klasy Person bez podania wartości dla tych pól, Pydantic zgłosi błąd ValidationError wskazujący, że brakuje wymaganych pól.



próbować :

dane_osoby = {

'wysokość' : 5.8 ,

}

osoba = Osoba ( **dane_osoby )

z wyjątkiem Błąd wartości Jak To jest:

wydrukować ( To jest )





W tym przykładzie brakuje pola pełna_nazwa oraz pola wysokości. Obydwa te pola są wymagane, a błąd ValidationError dostarcza przejrzystych informacji o brakujących polach.

Używanie wielokropka (…)

Innym sposobem zadeklarowania pola zgodnie z wymaganiami w Pydantic jest użycie wielokropka ( ). Jest to jawne podejście oferowane przez Pydantic, aby oznaczyć pole zgodnie z wymaganiami.



z pydantyczny import Model podstawowy

klasa Produkt ( Model podstawowy ) :

nazwa: ul = ...

cena : platforma = ...

opis : ul = ...

W tym przykładzie pola nazwa, cena i opis są zdefiniowane zgodnie z wymaganiami za pomocą wielokropka. Metoda ta wyraźnie i wyraźnie pokazuje, że podczas tworzenia instancji klasy Product nie można pominąć poszczególnych pól.

próbować :

dane produktu = {

'nazwa' : 'Telefon komórkowy' ,

'opis' : „Smartfon z 16 GB RAM” ,

}

produkt = Produkt ( **dane produktu )

z wyjątkiem Błąd wartości Jak To jest:

wydrukować ( To jest )


W tym przykładzie brakuje pola ceny, a błąd ValidationError wyraźnie wskazuje brak wymaganego pola.

Korzystanie z funkcji pola

Funkcja Field z modułu Pydantic zapewnia dodatkowe możliwości dostosowywania sprawdzania poprawności pól i metadanych. Za pomocą funkcji Pole możesz zadeklarować wymagane pola i zastosować dodatkowe reguły walidacji.

Oto jak zdefiniować wymagane pola za pomocą funkcji Pole:

z pydantyczny import Model podstawowy , Pole

klasa Adres ( Model podstawowy ) :

ulica: ul = Pole ( ... , opis = 'Adres ulicy' )

miasto: ul = Pole ( ... )

kod pocztowy: ul = Pole ( ... )

W tym przykładzie używamy funkcji Pole do zdefiniowania wymaganych pól ulica, miasto i kod pocztowy wraz z dodatkowymi regułami i opisami walidacji. Wielokropek „…” wskazuje, że pola te muszą być zdefiniowane jako pola wymagane.

próbować :

dane_adresowe = {

'ulica' : „Główna ulica 111” ,

'kod pocztowy' : „123456”

}

adres = Adres ( **dane_adresu )

z wyjątkiem Błąd wartości Jak To jest:

wydrukować ( To jest )

W tym przykładzie brakuje pola miasto, a błąd ValidationError dostarcza informacji o brakującym wymaganym polu.

Wymagane pola można sprawdzić za pomocą innych funkcji Pydantic, takich jak ograniczenia i typy. Można na przykład określić, że pole nazwy musi być ciągiem składającym się z co najmniej 5 znaków. Możesz użyć dekoratora pól, aby dostosować zachowanie wymaganych pól. Na przykład możesz określić domyślną wartość pola lub komunikat, który będzie wyświetlany, jeśli polu nie zostanie podana wartość.

Używanie wielu metod do definiowania wymaganych pól w jednym modelu Pydantic

Możesz użyć wielu metod definiowania wymaganych pól w ramach jednego modelu Pydantic. Na przykład możesz użyć adnotacji dla niektórych pól, wielokropka ( ) dla innych oraz funkcję Pole w celu dodatkowej personalizacji. Pydantic pozwala wybrać najlepsze podejście do organizacji kodu i preferencji czytelności. Rozważ następujący przykład:

z pydantyczny import Model podstawowy , Pole

klasa Pracownik ( Model podstawowy ) :

nazwa: ul

dział: ul =

wynagrodzenie: platforma = Pole ( )

W tym przykładzie wymagane jest użycie wszystkich pól. Zastosowaliśmy trzy różne metody definiowania wymaganych pól. W polu nazwa używana jest adnotacja, dział wielokropek, a wynagrodzenie funkcja Pole.

Wskazówki dotyczące korzystania z wymaganych pól

Przestrzeganie kilku dobrych praktyk podczas definiowania wymaganych pól w Pydantic jest niezbędne do stworzenia płynnego i łatwego w utrzymaniu kodu. Poniższe wskazówki pomogą Ci zdefiniować wymagane pola w Pydantic:

  1. Używaj jasnych i opisowych nazw pól : wybierz znaczące nazwy dla swoich pól, które jasno wskazują ich przeznaczenie. Pomaga to innym programistom wiedzieć, jakie dane są potrzebne i zmniejsza ryzyko pominięcia wymaganych pól.
  2. Podaj informacyjne opisy pól : Jeśli używasz funkcji Pole do definiowania wymaganych pól, podaj opisowe opisy wyjaśniające cel i oczekiwany format danych.
  3. Grupuj powiązane pola : Jeśli model danych zawiera dużą liczbę pól, rozważ pogrupowanie powiązanych pól w struktury zagnieżdżone. Dzięki temu Twój kod będzie bardziej czytelny i łatwiej będzie zarządzać wymaganymi polami.
  4. Użyj niestandardowych wiadomości dla wymaganych pól: Domyślnie Pydantic zgłosi wyjątek ValueError, jeśli wymagane pole nie otrzyma wartości. Możesz dostosować komunikat o błędzie, określając argument komunikatu dla dekoratora pól.

Wniosek

Pydantic domyślnie tworzy pola zgodnie z wymaganiami. Można jednak jawnie zdefiniować pole jako pola wymagane. Deklarując wymagane pola, masz pewność, że Twoje modele danych są dokładne, kompletne i zgodne z Twoimi wymaganiami. W tym poście omówiliśmy trzy różne metody definiowania wymaganych pól w Pydanticu, tj. adnotacje, wielokropek (…) i funkcję Pole. Ponadto przyjrzeliśmy się niektórym zalecanym praktykom korzystania z wymaganych pól, aby można było skutecznie określać pola w modelu danych.