Как определить обязательные поля в Pydantic

Kak Opredelit Obazatel Nye Pola V Pydantic



Обязательное поле — это поле, которое должно присутствовать в модели данных. Эти поля необходимы и не могут быть оставлены пустыми, поскольку они необходимы для правильной работы или завершения процесса. Если обязательному полю не присвоено значение, Pydantic выдаст исключение ValueError. Поля можно определить как обязательные различными способами. Однако Pydantic по умолчанию устанавливает все поля модели данных как обязательные. В этой статье будет показано, как определить обязательные поля в Pydantic. Мы также обсудим несколько полезных советов по использованию обязательных полей.

Преимущества использования обязательных полей

Использование обязательных полей в Pydantic дает несколько преимуществ.

  • Обеспечение полноты данных: Обязательные поля помогают нам гарантировать полноту и достоверность наших моделей данных. Это может помочь предотвратить ошибки в вашем коде и обработке данных.
  • Предотвращение вредоносного ввода: Обязательные поля также можно использовать, чтобы предотвратить внедрение неверных данных в вашу систему злоумышленниками.
  • Делаем код более читабельным: Вы можете улучшить читаемость и понимание вашего кода, используя обязательные поля.

Как определить обязательные поля в Pydantic

В Pydantic существует три метода определения поля как обязательного. Давайте изучим каждый из них подробно.







Использование аннотаций

Самый простой способ определить обязательное поле в Pydantic — использовать аннотации. Используя аннотации, тип синтаксических метаданных, вы можете добавить более подробную информацию о переменных и атрибутах классов. В Pydantic аннотации используются для указания ожидаемого типа данных поля, и по умолчанию все аннотированные поля считаются обязательными, пока вы не сделаете поле или поля необязательными.



от пидантический Импортировать Базовая модель

сорт Человек ( Базовая модель ) :

полное имя: ул.

высота: плавать

электронная почта : ул.

В этом примере полное_имя, рост и адрес электронной почты являются обязательными полями. Если вы создадите экземпляр класса Person, не указав значения для этих полей, Pydantic выдаст ошибку ValidationError, указывающую, что обязательные поля отсутствуют.



пытаться :

person_data '=' {

'высота' : 5,8 ,

}

человек '=' Человек ( **person_data )

кроме ValueError как Это:

Распечатать ( Это )





В этом примере отсутствует поле full_name, а также поле высоты. Оба эти поля являются обязательными, а ValidationError предоставляет четкую информацию об отсутствующих полях.

Использование многоточия (…)

Другой способ объявить поле в соответствии с требованиями Pydantic — использовать многоточие ( ). Это явный подход, предоставляемый Pydantic, для пометки поля как обязательного.



от пидантический Импортировать Базовая модель

сорт Продукт ( Базовая модель ) :

имя: ул. '=' ...

цена : плавать '=' ...

описание : ул. '=' ...

В этом примере имя поля, цена и описание определяются по мере необходимости с использованием многоточия. Этот метод явно и наглядно показывает, что определенные поля нельзя пропустить при создании экземпляра класса Product.

пытаться :

Данные продукта '=' {

'имя' : 'Мобильный телефон' ,

'описание' : «Смартфон с 16 ГБ оперативной памяти» ,

}

продукт '=' Продукт ( **Данные продукта )

кроме ValueError как Это:

Распечатать ( Это )


В этом примере поле цены отсутствует, а ошибка ValidationError четко указывает на отсутствие обязательного поля.

Использование функции поля

Функция Поле из модуля Pydantic предоставляет дополнительные возможности для настройки проверки полей и метаданных. Вы можете использовать функцию «Поле», чтобы объявить обязательные поля и применить дополнительные правила проверки.

Вот как вы можете определить обязательные поля с помощью функции «Поле»:

от пидантический Импортировать Базовая модель , Поле

сорт Адрес ( Базовая модель ) :

улица: ул. '=' Поле ( ... , описание '=' 'Адрес улицы' )

город: ул. '=' Поле ( ... )

почтовый индекс: ул. '=' Поле ( ... )

В этом примере мы используем функцию Field для определения обязательных полей street, city и zip_code, а также дополнительных правил проверки и описаний. Многоточие «…» указывает на то, что эти поля должны быть определены как обязательные.

пытаться :

адрес_данные '=' {

'улица' : 'Мейн-стрит, 111' ,

'почтовый индекс' : '123456'

}

адрес '=' Адрес ( **адрес_данные )

кроме ValueError как Это:

Распечатать ( Это )

В этом примере поле города отсутствует, а ValidationError предоставляет информацию об отсутствующем обязательном поле.

Обязательные поля можно проверить с помощью других функций Pydantic, таких как ограничения и типы. Например, вы можете указать, что поле имени должно представлять собой строку длиной не менее 5 символов. Вы можете использовать декоратор полей, чтобы настроить поведение обязательных полей. Например, вы можете указать значение по умолчанию для поля или сообщение, которое будет отображаться, если полю не присвоено значение.

Использование нескольких методов для определения обязательных полей в одной модели Pydantic

Вы можете использовать несколько методов определения обязательных полей в одной модели Pydantic. Например, вы можете использовать аннотации для некоторых полей, многоточие ( ) для других и функция «Поле» для дополнительной настройки. Pydantic позволяет вам выбрать лучший подход с учетом ваших предпочтений по организации кода и читабельности. Рассмотрим следующий пример:

от пидантический Импортировать Базовая модель , Поле

сорт Сотрудник ( Базовая модель ) :

имя: ул.

отделение: ул. '='

зарплата: плавать '=' Поле ( )

В этом примере необходимо использовать все поля. Мы использовали три разных метода для определения обязательных полей. В поле имени используется аннотация, в отделе — многоточие, а в поле зарплаты — функция Поле.

Советы по использованию обязательных полей

Следование некоторым передовым практикам при определении обязательных полей в Pydantic необходимо для создания гладкого и удобного в обслуживании кода. Следующие советы помогут вам определить обязательные поля в Pydantic:

  1. Используйте понятные и описательные имена полей. : выбирайте осмысленные имена для полей, которые четко обозначают их назначение. Это помогает другим разработчикам узнать, какие данные необходимы, и снижает вероятность пропуска обязательных полей.
  2. Предоставьте информативные описания полей : При использовании функции «Поле» для определения обязательных полей предоставьте описательные описания, объясняющие назначение и ожидаемый формат данных.
  3. Группировать связанные поля : Если ваша модель данных имеет большое количество полей, рассмотрите возможность группировки связанных полей во вложенные структуры. Это может сделать ваш код более читабельным и упростить управление обязательными полями.
  4. Используйте специальные сообщения для обязательных полей: По умолчанию Pydantic выдает исключение ValueError, если обязательному полю не присвоено значение. Вы можете настроить сообщение об ошибке, указав аргумент сообщения декоратору поля.

Заключение

Pydantic по умолчанию создает поля по мере необходимости. Однако вы можете явно определить это поле как обязательное. Объявляя поля обязательными, вы гарантируете, что ваши модели данных точны, полны и соответствуют вашим требованиям. В этом посте мы рассмотрели три различных метода определения обязательных полей в Pydantic, а именно аннотации, многоточие (…) и функцию поля. Кроме того, мы рассмотрели некоторые рекомендуемые методы использования обязательных полей, чтобы вы могли эффективно указывать поля в своей модели данных.