Python Form Validation with Pydantic
Validate form data in Python using Pydantic v2 models with custom validators, nested model validation, error message customization, and JSON schema export.
Code
from pydantic import BaseModel, EmailStr, field_validator
class LoginForm(BaseModel):
email: EmailStr
password: str
@field_validator('password')
@classmethod
def validate_password(cls, v):
if len(v) < 8:
raise ValueError('Password must be at least 8 characters')
if not any(c.isupper() for c in v):
raise ValueError('Must contain uppercase')
return v
try:
form = LoginForm(email='[email protected]', password='Secret123')
except ValueError as e:
print(f'Validation error: {e}')