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

Тип AnyHttpUrl

Тип AnyHttpUrl применяется в моделях Pydantic для объявления поля, которое должно содержать HTTP-адрес. В отличие от HttpUrl, этот тип допускает любой протокол, а не только http и https. При создании модели Pydantic проверяет, что строка является корректным URL, и преобразует её в объект AnyHttpUrl. Если значение не является допустимым адресом, возникает ошибка валидации ValidationError.

Синтаксис

from pydantic import AnyHttpUrl class Model(BaseModel): field: AnyHttpUrl

Пример

Давайте объявим модель с полем типа AnyHttpUrl и передадим в него корректный адрес:

from fastapi import FastAPI from pydantic import BaseModel, AnyHttpUrl app = FastAPI() class Site(BaseModel): url: AnyHttpUrl @app.post('/site/') def create_site(site: Site): return {'url': str(site.url)}

Результат выполнения кода для тела запроса {"url": "https://example.com"}:

{"url": "https://example.com/"}

Пример

Давайте передадим адрес с нестандартным протоколом, который допустим для AnyHttpUrl:

<+python+> from fastapi import FastAPI from pydantic import BaseModel, AnyHttpUrl app = FastAPI() class Site(BaseModel): url: AnyHttpUrl @app.post('/site/') def create_site(site: Site): return {'url': str(site.url)} <-python+>

Результат выполнения кода для тела запроса {"url": "ftp://example.com"}:

{"url": "ftp://example.com/"}

Пример

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

from pydantic import BaseModel, AnyHttpUrl, ValidationError class Site(BaseModel): url: AnyHttpUrl try: Site(url='abcde') except ValidationError as e: print(e.errors())

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

[{'type': 'url_parsing', 'loc': ('url',), 'msg': 'Input should be a valid URL, relative URL without a base', 'input': 'abcde', 'url': 'https://errors.pydantic.dev/2.5/v/url_parsing'}]

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

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