Pydantic برای اعتبارسنجی و تبدیل تمیز دادهها🔹 دیگه با دست دیتای ورودی رو چک نکن! (اعتبارسنجی مدرن در پایتون با Pydantic)
🔹 خیلی وقتا دیتایی از ورودی، کاربر یا API به دستمون میرسه (مثلاً JSON) و کلی خط کد مینویسیم تا چک کنیم سن حتماً عدد باشه، ایمیل فرمت درست داشته باشه و فیلدها خالی نباشن.
🔹 کتابخونه Pydantic این کار رو با تایپ هینتهای خود پایتون فوقالعاده ساده و تمیز کرده:
🔹 نمونه کد عملی:
from datetime import datetime
from pydantic import BaseModel, EmailStr, Field, field_validator
class UserRegisterSchema(BaseModel):
name: str = Field(..., min_length=3, max_length=50)
email: EmailStr
age: int = Field(..., ge=18, le=100) # سن باید بین ۱۸ تا ۱۰۰ باشه
joined_at: datetime = Field(default_factory=datetime.now)
@field_validator("name")
def name_must_not_contain_numbers(cls, value):
if any(char.isdigit() for char in value):
raise ValueError("نام نباید شامل عدد باشد")
return value
# تست با دیتای خام:
raw_data = {
"name": "Ali Dolati",
"email": "ali@example.com",
"age": "25" # خود پایتون استرینگ رو تبدیل به عدد میکنه!
}
try:
user = UserRegisterSchema(**raw_data)
print("دیتای تمیز و معتبر:", user.model_dump())
except Exception as e:
print("خطای ولیدیشن:", e)
🔹 چرا کاربردیه؟ هسته اصلی ابزارهایی مثل FastAPI و لانگچین همین Pydantic هست و تبدیل دادهها (Data Parsing) رو بهشدت امن و سریع میکنه.
🐍 @python_rd