regularpython@gmail.com
Key Features of Pydantic
1. Data Validation through Python Type Hints
Pydantic uses Python’s type hints to validate data automatically when creating objects.
from pydantic import BaseModel
class Order(BaseModel):
user_id: int
product_id: int
quantity: int
order = Order(user_id=101, product_id=502, quantity=2)
print(order)
2. Automatic Parsing and Serialization
from pydantic import BaseModel
from datetime import datetime
class Booking(BaseModel):
event_name: str
event_date: datetime
booking = Booking(event_name="Music Concert", event_date="2025-03-15T19:30:00")
print(booking.json())
3. Custom Validators
from pydantic import BaseModel, EmailStr, validator
class User(BaseModel):
email: EmailStr
@validator('email')
def validate_email_domain(cls, v):
if not v.endswith('@example.com'):
raise ValueError('Email must be from example.com domain')
return v
4. JSON Schema Generation
from pydantic import BaseModel
class Product(BaseModel):
id: int
name: str
price: float
print(Product.schema_json())
5. Environment Variable Management
from pydantic import BaseSettings
class Config(BaseSettings):
database_url: str
secret_key: str
class Config:
env_file = '.env'
config = Config()
print(config.database_url)