РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
195 of 307 menu

Тип UUID4

Тип UUID4 применяется в моделях Pydantic для описания поля, которое должно содержать уникальный идентификатор версии 4. При валидации Pydantic принимает строку в формате UUID, объект uuid.UUID или значение, приводимое к UUID. Если значение не соответствует формату, возникает ошибка валидации. При сериализации в JSON значение отдаётся строкой.

Тип импортируется из модуля pydantic и используется как аннотация поля в модели, наследуемой от BaseModel.

Синтаксис

from pydantic import UUID4

Пример

Давайте создадим модель с полем типа UUID4 и проверим валидацию на корректном значении:

from fastapi import FastAPI from pydantic import BaseModel, UUID4 app = FastAPI() class User(BaseModel): id: UUID4 name: str @app.post('/user/') def create_user(user: User): return user

Результат выполнения кода для тела запроса {"id": "123e4567-e89b-42d3-a456-426614174000", "name": "abcde"}:

{"id": "123e4567-e89b-42d3-a456-426614174000", "name": "abcde"}

Пример

Давайте передадим некорректное значение и посмотрим, как отреагирует валидация:

from fastapi import FastAPI from pydantic import BaseModel, UUID4 app = FastAPI() class User(BaseModel): id: UUID4 name: str @app.post('/user/') def create_user(user: User): return user

Результат выполнения кода для тела запроса {"id": "not-a-uuid", "name": "abcde"}:

{ "detail": [ { "type": "uuid_parsing", "loc": ["body", "id"], "msg": "Input should be a valid UUID, invalid character: expected an optional prefix of `urn:uuid:` followed by [0-9a-fA-F-], found `n` at 1", "input": "not-a-uuid", "ctx": { "error": "invalid character: expected an optional prefix of `urn:uuid:` followed by [0-9a-fA-F-], found `n` at 1" } } ] }

Пример

Давайте создадим объект модели напрямую и получим значение поля как объект uuid.UUID:

from pydantic import BaseModel, UUID4 class User(BaseModel): id: UUID4 name: str user = User(id='123e4567-e89b-42d3-a456-426614174000', name='abcde') res = user.id print(type(res))

Результат выполнения кода:

<class 'uuid.UUID'>

Смотрите также

  • класс BaseModel,
    от которого наследуются все модели Pydantic
  • функция Field,
    которая настраивает параметры поля модели
  • метод model_dump,
    который сериализует модель в словарь
  • метод model_validate,
    который валидирует данные и создаёт модель
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить