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

Валидатор URLValidator

Валидатор URLValidator применяется для проверки URL-адресов в полях форм Django. Он проверяет, соответствует ли переданное значение формату URL, включая правильный синтаксис и наличие обязательных компонентов. Валидатор можно использовать как в полях формы через параметр validators, так и самостоятельно для валидации строк. Конструктор принимает необязательные параметры для настройки проверки.

Синтаксис

from django.core.validators import URLValidator validator = URLValidator() validator('https://example.com')

Параметры конструктора

  • message - текст сообщения об ошибке при невалидном URL
  • code - код ошибки для идентификации типа ошибки валидации
  • schemes - список разрешенных схем URL (по умолчанию ['http', 'https', 'ftp', 'ftps'])

Пример . Использование в форме

Определим форму с полем для ввода URL-адреса с применением валидатора:

from django import forms from django.core.validators import URLValidator class WebsiteForm(forms.Form): website = forms.URLField( validators=[URLValidator()] )

Результат проверки формы с корректным URL:

form = WebsiteForm({'website': 'https://example.com'}) form.is_valid() # True

Пример . С кастомными схемами

Ограничим проверку только HTTPS-ссылками:

from django import forms from django.core.validators import URLValidator class SecureForm(forms.Form): secure_url = forms.URLField( validators=[URLValidator(schemes=['https'])] )

Попробуем передать HTTP-ссылку в форму:

form = SecureForm({'secure_url': 'http://example.com'}) form.is_valid() # False form.errors['secure_url']

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

"Enter a valid URL."

Пример . Самостоятельное использование

Валидатор можно использовать вне формы для проверки строк:

from django.core.validators import URLValidator from django.core.exceptions import ValidationError validator = URLValidator() url = 'https://djangoproject.com' try: validator(url) print('URL is valid') except ValidationError as e: print(f'Invalid URL: {e}')

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

"URL is valid"

Пример . С пользовательским сообщением

Создадим валидатор с собственным текстом ошибки:

from django import forms from django.core.validators import URLValidator class CustomForm(forms.Form): link = forms.URLField( validators=[ URLValidator( message='Please enter a correct web address' ) ] )

При попытке отправить невалидный URL:

form = CustomForm({'link': 'not_a_url'}) form.is_valid() # False form.errors['link']

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

"Please enter a correct web address"

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

  • валидатор EmailValidator,
    который проверяет корректность email-адресов
  • валидатор RegexValidator,
    который выполняет проверку по регулярному выражению
  • валидатор DomainNameValidator,
    который проверяет доменные имена
  • поле URLField,
    которое использует этот валидатор по умолчанию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить