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

Тип IPvAnyAddress

Тип IPvAnyAddress применяется в моделях Pydantic для проверки того, что переданное значение является корректным IP-адресом. Он принимает как IPv4, так и IPv6 адреса. При несоответствии формата возбуждается ошибка валидации.

Синтаксис

from pydantic import IPvAnyAddress field: IPvAnyAddress

Пример

Давайте создадим модель с полем типа IPvAnyAddress и передадим корректный IPv4-адрес:

from fastapi import FastAPI from pydantic import BaseModel, IPvAnyAddress app = FastAPI() class Item(BaseModel): ip: IPvAnyAddress @app.post('/check') def check_ip(item: Item): return {'ip': str(item.ip)}

Результат выполнения запроса с телом {"ip": "192.168.0.1"}:

{"ip": "192.168.0.1"}

Пример

Давайте проверим работу типа с некорректным адресом и посмотрим на ошибку валидации:

from fastapi import FastAPI from pydantic import BaseModel, IPvAnyAddress app = FastAPI() class Item(BaseModel): ip: IPvAnyAddress @app.post('/check') def check_ip(item: Item): return {'ip': str(item.ip)}

Результат выполнения запроса с телом {"ip": "999.999.999.999"}:

{ "detail": [ { "type": "value_error", "loc": ["body", "ip"], "msg": "value is not a valid IPv4 or IPv6 address", "input": "999.999.999.999" } ] }

Пример

Давайте убедимся, что тип IPvAnyAddress корректно принимает IPv6-адреса:

from fastapi import FastAPI from pydantic import BaseModel, IPvAnyAddress app = FastAPI() class Item(BaseModel): ip: IPvAnyAddress @app.post('/check') def check_ip(item: Item): return {'ip': str(item.ip)}

Результат выполнения запроса с телом {"ip": "2001:db8::1"}:

{"ip": "2001:db8::1"}

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

  • класс BaseModel,
    который является основой для создания моделей данных
  • тип HttpUrl,
    который валидирует HTTP-ссылки
  • тип UUID4,
    который проверяет корректность UUID четвёртой версии
  • тип EmailStr,
    который валидирует адреса электронной почты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить