Ninja Learn | نینجا لرن
1.25K subscribers
96 photos
36 videos
11 files
307 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.me/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.me/+td1EcO_YfSphNTlk
Download Telegram
معرفی 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



@ninja_learn_ir
👍83👌2🔥1