Валидатор validate_ipv6_address
Валидатор validate_ipv6_address применяется к полям форм Django для проверки того, что введенное значение является корректным IPv6-адресом. Данный валидатор входит в стандартный набор валидаторов Django и используется для обеспечения правильности формата IP-адресов шестой версии. Валидатор принимает строку и проверяет ее на соответствие стандартам IPv6, включая сокращенные и полные формы записи.
Синтаксис
from django.core.validators import validate_ipv6_address
validate_ipv6_address(value)
Валидатор принимает один обязательный параметр:
- ⁅b⁆value⁅/b⁆ - строка, содержащая IPv6-адрес для проверки
При успешной проверке валидатор ничего не возвращает. В случае ошибки выбрасывается исключение ValidationError с соответствующим сообщением.
Пример
Используем валидатор для проверки корректного IPv6-адреса:
from django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError
# Проверка корректного IPv6-адреса
ip_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
try:
validate_ipv6_address(ip_address)
print("IP-address is valid")
except ValidationError as e:
print(f"Error: {e.message}")
Результат выполнения кода:
"IP-address is valid"
Пример
Проверим сокращенную форму записи IPv6-адреса:
from django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError
# Сокращенная форма IPv6-адреса
ip_address = "::1"
try:
validate_ipv6_address(ip_address)
print("Shortened IPv6 is valid")
except ValidationError as e:
print(f"Error: {e.message}")
Результат выполнения кода:
"Shortened IPv6 is valid"
Пример
Используем валидатор в поле формы для автоматической проверки IPv6-адресов:
from django import forms
from django.core.validators import validate_ipv6_address
class ServerForm(forms.Form):
name = forms.CharField(max_length=100)
ipv6_address = forms.CharField(
validators=[validate_ipv6_address],
label="IPv6 Address",
help_text="Enter a valid IPv6 address"
)
def clean_ipv6_address(self):
data = self.cleaned_data['ipv6_address']
# Дополнительная обработка после валидации
return data
Пример
Обработаем случай с некорректным IPv6-адресом:
from django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError
# Некорректный IPv6-адрес
invalid_ip = "256.256.256.256"
try:
validate_ipv6_address(invalid_ip)
print("Address is valid")
except ValidationError as e:
print(f"Validation failed: {e.message}")
Результат выполнения кода:
"Validation failed: Enter a valid IPv6 address."
Смотрите также
-
валидатор
validate_ipv4_address,
который проверяет корректность IPv4-адресов -
валидатор
validate_ipv46_address,
который проверяет корректность как IPv4, так и IPv6-адресов -
валидатор
DomainNameValidator,
который проверяет корректность доменных имен -
валидатор
URLValidator,
который проверяет корректность URL-адресов