در این بخش خودِ مدل در Pydantic را توضیح میدهیم؛ نه جزئیات فیلدها، بلکه اینکه یک مدل از چه بخشهایی تشکیل شده و هر بخش چه نقشی در فرایند اعتبارسنجی و ساخت ساختار داده دارد.
یک مدل در Pydantic از چه بخشهایی تشکیل شده است؟
| بخش | عملکرد |
|---|---|
| کلاس اصلی مدل | ساختار کلی مدل است. این کلاس نشان میدهد که قرار است چه نوع آبجکتی ساخته شود و پایهٔ تمام رفتارهای اعتبارسنجی و مدیریت داده است. هر مدل در واقع یک «قالب داده» است. |
| ارثبری از BaseModel | این بخش باعث میشود کلاس تعریفشده به قابلیتهای Pydantic مجهز شود. BaseModel موتور اصلی اعتبارسنجی، تبدیل داده و ساخت خروجیهای ساختاریافته است. |
| فیلدهای مدل (بدون ورود به نوع و جزئیات) | این بخش اسکلت داخلی مدل است؛ یعنی تعیین میکند مدل چه قسمتهایی (ویژگیهایی) دارد. فیلدها فقط ستونهای مدل هستند و BaseModel با استفاده از آنها داده را سازماندهی میکند. |
| ایجاد آبجکت مدل | زمانی که از مدل یک نمونه ساخته میشود، Pydantic داده را بررسی، اعتبارسنجی و ساختارمند میکند و در قالب یک آبجکت تمیز و قابلاستفاده بازمیگرداند. این مرحله هستهٔ عملکرد مدل است. |
| فرایند Validation | بخشی درونی و خودکار در مدل که دادههای ورودی را تحلیل کرده، خطاها را مشخص میکند و در صورت امکان دادهها را تبدیل میکند. این سیستم بدون کدنویسی اضافی فعال است. |
| فرایند Serialization | بخشی که مدل را به خروجیهای استاندارد مانند JSON یا dict تبدیل میکند. این امکان باعث میشود مدلها هم برای ذخیرهسازی و هم برای API کاملاً مناسب باشند. |
| تنظیمات مدل (Model Config) | بخشی که رفتار مدل را کنترل میکند؛ مثلاً اینکه strict باشد یا دادهها را تبدیل کند یا خیر. این تنظیمات روی کل مدل اعمال میشوند و نحوهٔ برخورد Pydantic با دادهها را تعیین میکنند. |
جمعبندی ساختار یک مدل
- مدل یک کلاس است که نمایندهٔ یک ساختار دادهای مشخص میباشد.
- با ارثبری از BaseModel تبدیل به یک مدل هوشمند برای کار با داده میشود.
- فیلدها فقط ستونهای اطلاعات هستند و موتور اصلی رفتار در BaseModel وجود دارد.
- فرایند ساخت آبجکت مدل، شامل اعتبارسنجی و تبدیل داده، بخش اصلی ارزش Pydantic است.
- Model Config رفتارهای مدل را تنظیم و کنترل میکند.
- Serialization مدل را برای APIها، ذخیرهسازی و خروجیهای JSON آماده میکند.
بهطور خلاصه: یک مدل در Pydantic ترکیبی است از ساختار (کلاس + فیلدها)، منطق (BaseModel)، کنترل رفتار (Config) و ابزارهای خروجی (Serialization)؛ مجموعهای که باعث میشود دادهها از حالت خام به یک ساختار معتبر و استاندارد تبدیل شوند.
نمونهٔ ساختار یک مدل ساده:
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
active: bool = True