tgoop.com/ninja_learn_ir/393
Last Update:
معرفی Pydantic 🧩
ـPydantic یه کتابخونه خفنه برای پایتون که بهت اجازه میده راحت و دقیق دادههات رو اعتبارسنجی (validation) و تایپ کنی. اگه توی پروژههای بزرگ کار میکنی، Pydantic خیلی کمکت میکنه چون بهت کمک میکنه دادهها رو تمیز و بینقص نگه داری.
چرا Pydantic؟ 🔍
فرض کن میخوای دادههای کاربر رو توی یه اپلیکیشن بگیری، اما مطمئن نیستی که دادهها دقیقا همونی هستن که میخوای. ممکنه کاربر یه مقدار اشتباه وارد کنه، یه فیلد رو جا بندازه، یا نوع داده رو اشتباه بزنه. با Pydantic، میتونی مطمئن باشی که همه چیز درست وارد شده و اگه چیزی اشتباه بود، خیلی راحت یه ارور میگیری و جلوش رو میگیری.
چطور کار میکنه؟ 🔨
ـPydantic با استفاده از مدلها کار میکنه. مدلها همون کلاسهای پایتون هستن که به کمکشون میتونی ساختار داده رو تعریف کنی. بیاید با یه مثال شروع کنیم:
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
email: str
age: int = 18 # مقدار پیشفرض
user_data = {
"id": 1,
"name": "Ali",
"email": "ali@example.com"
}
user = User(**user_data)
print(user)
اینجا یه مدل به نام
User
تعریف کردیم که شامل id
، name
، email
و age
هست. اگه فیلدی رو اشتباه بدیم یا از نوعی غیر از نوع مشخصشده استفاده کنیم، Pydantic خطا میده.بررسی Validation در Pydantic 🛠️
ـPydantic بهت این امکان رو میده که خیلی راحت دادهها رو اعتبارسنجی کنی. مثلا اگه بخوای مطمئن بشی که
email
به فرمت درستی وارد شده، Pydantic خودش اینو هندل میکنه و نیازی نیست دستی بررسی کنی. بیاین یه مثال دیگه رو ببینیم:from pydantic import BaseModel, EmailStr, PositiveInt
class User(BaseModel):
id: PositiveInt
name: str
email: EmailStr
age: int = 18
try:
user = User(id=-1, name="Ali", email="ali@bad-email", age=22)
except ValueError as e:
print("خطا:", e)
اینجا
PositiveInt و EmailStr رو استفاده کردیم که به طور خودکار id باید مثبت باشه و email هم باید فرمت درستی داشته باشه. این یعنی خیلی راحت میتونی دادهها رو کنترل کنی و از ورود دادههای اشتباه جلوگیری کنی.
مدلهای تو در تو (Nested Models) 🧬
اگه دادههات پیچیدهترن و شامل چند مدل میشن، میتونی مدلهای تو در تو بسازی. مثلا:
from typing import List
from pydantic import BaseModel
class Address(BaseModel):
street: str
city: str
class User(BaseModel):
id: int
name: str
addresses: List[Address]
user_data = {
"id": 1,
"name": "Ali",
"addresses": [
{"street": "خیابون اول", "city": "تهران"},
{"street": "خیابون دوم", "city": "مشهد"}
]
}
user = User(**user_data)
print(user)
جمعبندی 🎯
فهمیدیم Pydantic یه ابزار قوی برای مدیریت و اعتبارسنجی دادههاست که بهویژه تو پروژههای بزرگ و APIها خیلی کمک میکنه. میتونی مدلهای پیچیده بسازی، دادهها رو اعتبارسنجی کنی، و با استفاده از تایپهای قوی پایتون، کد تمیزتر و قابل خوانا تر بکنی.
#python #pydantic #programing
BY Ninja Learn | نینجا لرن
Share with your friend now:
tgoop.com/ninja_learn_ir/393