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.

Python Form Validation

Code

snippet
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}')