از Pista Academy حمایت کنید
برای مشاهده سایر جلسات و ادامه یادگیری، وارد صفحه دوره شوید.
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 13 دوره جامع FastAPI، مدرس به بررسی پروژه پست میپردازد. ابتدا نحوه پیادهسازی ورودیهای ریکوست و انجام ولیدیشن اطلاعات با استفاده از پایدنتیک توضیح داده میشود، از جمله محدودیتهایی مانند طول استرینگ و محدوده اعداد. سپس به تعریف مدلهایی برای ذخیره دیتا در دیتابیس و نحوه استفاده از آنها در ریکوستهای مختلف مانند پست، پوت و دیلیت پرداخته میشود. همچنین، نحوه انجام عملیات ذخیره، بهروزرسانی و حذف دیتا در دیتابیس توضیح داده میشود. این بخش به پایان رسیده و به جلسه بعدی که به موضوع آتنتیکیشن و آتوریزیشن میپردازد، اشاره میکند.
نکات کلیدی
پیادهسازی ولیدیشن اطلاعات با استفاده از پایدنتیک و تعریف محدودیتهایی مانند طول استرینگ و محدوده اعداد.
انجام عملیات ذخیره، بهروزرسانی و حذف دیتا در دیتابیس با استفاده از ریکوستهای پست، پوت و دیلیت.
تعریف مدلهایی برای ذخیره دیتا در دیتابیس و استفاده از آنها در ریکوستهای مختلف.
جلسه بعدی به موضوع آتنتیکیشن و آتوریزیشن میپردازد.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
در این جلسه، مباحثی مانند پیادهسازی ورودیهای ریکوست، ولیدیشن اطلاعات با استفاده از پایدنتیک، تعریف مدلهای دیتابیس و نحوه استفاده از آنها در ریکوستهای مختلف مانند پست، پوت و دیلیت مورد بررسی قرار گرفته است.
عملیات ذخیره، بهروزرسانی و حذف دیتا در دیتابیس با استفاده از ریکوستهای پست، پوت و دیلیت انجام شده است.
جلسه بعدی به موضوع آتنتیکیشن و آتوریزیشن میپردازد.
آخرین بهروزرسانی محتوای متنی:
دوره جامع FastAPI از صفر تا استقرار در دنیای واقعی اگر دنبال ساخت APIهای حرفهای، سریع و امن با پایتون هستی، این دوره دقیقاً برای توست. قدمبهقدم از مبانی شروع میکنیم و تا پیادهسازی در محیط تولید (Production) پیش میرویم: از راهاندازی و طراحی Endpointها، پایگاهداده، احراز هویت و مجوزها، تستنویسی و مهاجرت دیتابیس تا نسخهسازی با Git و دیپلوی نهایی. این دوره چه چیزهایی بهت میدهد؟ شناخت کامل FastAPI و مزیتهایش (سرعت بالا، تایپهینتها، مستندسازی خودکار، async) ساخت RESTful APIهای تمیز و ماژولار با الگوهای حرفهای پیادهسازی لایههای Authentication & Authorization (مانند توکنهای JWT و نقشها) اتصال به پایگاهداده و آمادهسازی Database برای تولید به همراه مفاهیم اساسی Performance و ایمنی داده انجام مهاجرتهای دیتابیس (Alembic) بدون از دست رفتن داده Unit & Integration Testing برای اطمینان از کیفیت کد ساخت یک اپلیکیشن فولاستک با API بکاند FastAPI و یک فرانتاند رایج مدیریت نسخهها و گردشکار تیمی با Git Deploy امن و استاندارد روی سرور یا سرویسهای ابری 🎯 مخاطبان این دوره برنامهنویسان پایتون که میخواهند APIهای سریع و مقیاسپذیر بسازند بکاند دولوپرهایی که به دنبال Production-Ready FastAPI هستند دانشجویان یا فریلنسرهایی که میخواهند با نمونهکارهای واقعی، وارد بازار کار شوند پیشنیاز: آشنایی پایه با پایتون (متغیرها، توابع، ماژولها). بقیه را در خود دوره یاد میگیری. خروجی نهایی تو پس از دوره یک بکاند استاندارد و Production-Ready با FastAPI تسلط بر احراز هویت و مجوزها و الگوهای امنیتی رایج مهارت در مهاجرتهای دیتابیس و نگهداری داده در طول توسعه توانایی نوشتن تست برای اطمینان از کیفیت و کاهش ریسک تجربه ساخت یک پروژه فولاستک برای رزومه و پرتفولیو آمادگی برای دیپلوی و نگهداری سرویس در محیط واقعی چرا این دوره متفاوت است؟ پروژهمحور و کاملاً عملی؛ هر فصل یک خروجی ملموس میسازد تمرکز روی آنچیزی که در محیط تولید واقعاً به آن نیاز داری سادگی بیان + استانداردهای حرفهای = یادگیری سریع اما اصولی چطور از دوره استفاده کنم؟ ویدیوها را به ترتیب ببین و همزمان کدنویسی کن هر فصل یک Feature واقعی بساز در انتها آمادهای کدت را روی سرور/ابر بالا بیاوری اگر این دوره برات مفید بود، لطفاً لایک، سابسکرایب و کامنت یادت نره تا فصلهای جدیدتر و پروژههای بیشتر بسازیم 🙌
بکنه.
اولین کاری که میکنم اینه که یادتون باشه
ما از یه چیزی استفاده میکردیم. توی
پروژه قبلی اومدیم استفاده کردیم برای
اینکه یه ولیدیشنی رو دیتایی که قراره
بیاد انجام بدیم
یه ابزاری داشتیم به نام پایدنتیک یادتون باشه میادیم چیکار میکردیم یه کلاس تعریف
میکردیم مثلا اسمشون داشتم تو دو ریکوست
یه بیس مدلی هم به عنوان ورودی میدادم بهش بیس
مدل که این بعد از پایلنتینگ بدونم خودش
میتونه بفهمه
آره ایناش
بعد میومدم چیکار میکردم فیلدامو همه رو تعریف میکردم یعنی تمام اینا رو آیدی رو
نمیخواد بچهها آیدی رو خود اس کیلکمی
براتون چیز میکنه انجام میده یعنی خودش
آیدی یونیک میده
بعد میومدم اینجا چی میگفتم میگفتم
استرینگ باشه
اینست البته که کامپلت استرین نیست بولیمه اینو
باید درست کنم پلاریتی هم که اینجاد
این از این پس ما الان این کارو کردیم یه ولیدیشنی انجام دادیم که مطمئن بشیم
تایتلمون استرینگ و اینا اما این کافی
نیست یه کار دیگه هم باید انجام بدیم
چی بود؟ مثلاً میتونیم بگیم که تایتل چند
کاراکتر باشه اینتیجرمون از چند تا چند
باشه اینا رو هم میتونیم مشخص بکنیم.
چهجوری این کارو میکردیم؟ یه چیز دیگه
داشتیم به نام فیلد.
از همین بیس مدل و پایدنتیک میومد. مثلاً تو این میگفتم که مینیموم طولش
باشه مثلاً سه کاراکتر.
توی دسکریپشن میگفتم که مثلاً
باز مینیموم طولش باشه سه تا یه ماکسیمومم
میتونستم مشخص کنم مثلاً باشه ۱۰۰
کاراکتر
تو اینتیجرم میگفتیم که
بزرگتر از صفر کوچکتر از ۶ مثلاً بین صفر و ۵ باشه
بولینم که تکلیفش مشخصه دیگه بولین اصلاً
نیاز به هیچ
ولیدیشن اضافهای نداره. خب ما الان
ولیدیشنو نوشتیم. بریم سراغ خود دقیقاً
ریکوست انپوینتمونو مشخص بکنیم.
انپینتمونو بنویسیم. میام میگم که اپ. گت
همین جا استاتوس کدشم مشخص میکنم. این که کپی پیستش.
فقط این ۲۰۰ نیست. این یه چیز دیگه هست
چیه؟
۲۱ کریتد
چرا اینجوری میکنه ایسینک دف
کرت
تو دو
تو ریکوست هم که کجا نوشتم تو دو
بعد میگم که تو دوز مدل مساویس با توز
د تا ستاره میذارم [موسیقی]
توست.
خب دی.
اد
تو مدر
و.
خب بریم خط به خط ببینیم چیه این تووسو دوباره گیر داده که فکر کنم به خاطر اینه
که باید اینجوری بنویسمش
دیپلیکیت شده مدل دامپ
چش
خب اسپکت میکنی خب اسپکتم بکن دیگه ایسینک دف نوشتم دیگه
آها گت نوشتم پست
باز نشد
به چی داره گیل میده ۲۰ عزیز ز همه چی که درسته
آها اصلاً نمیخواد اینو چرا گذاشتم اصلاً خب اینم از این بریم حالا سراغ اینکه این
اینا چیه
خب این خط اول که بچهها معلومه دیگه ما داریم اند پوینتمونو مشخص میکنیم استاتوس
کدم گذاشتیم برای زمانی که ساس ساکسسسفول
باشه تو خط دوم چیکار کردم اومدم هم در
حقیقت یه دونه اصطلاحاً هندلر به این میگم
بچهها هندلر به این میگم خب
اینجا چهجوری میشه کامنت گذاشت
میخوام اصلا خیلی دقیقتر بنویسم دیفاین یه چیزی هم داشته باشیم
بعد این چیه
این اون دپندنسییه که ما توی سشن
دیتابیسمون اینجکتش میکنیم که قبلاً
اینجا نوشتمش اینوها اینه
این چیه؟ ما قبل از اینکه بخوایم
در حقیقت اون دیتایی که تو ریکوست داره
میاد رو ببریم ذخیره بکنیم اول میبریمش
توی پایدنتینگ اونجا یه ولیدیشن انجام
میدیم که ولیدیشنو من این بالا نوشتم
براتون چیا بود اینها بعد از اینکه
ولیدیشن انجام بشه میاد بیاره ذخیره بشه
تو مرحله بعدی چیکار کردیم ما اومدیم یه
دونه مدل یه اینستنس از اون مدلی که قبلاً
درست کردیم و ساختیم ما یه مدلی رو تعریف
کردیم به نام تووس اینها این مدلمون بود
برای اینکه دیتا بخواد بره تو دیتابیس
ذخیره بشه باید دقیقاً با همون مدل
دیتابیس بره ذخیره بشه ما اومدیم از اون
اطلاعاتی که از سمت ریکوست اومده یه مدلی
ساختیم
بعد این چیکار میکنه
مدلداپ میاد
از این مقادیری که داخل این وجود داره یه
دیکشنری درست میکنن همین
بعد و در نهایت اینجا هم کاری که میکنه
یه میبره تو مرحله استیجینگ اصطلاحاً خب
حالا بچههای که با گیت آشنا هستن میبره
تو مرحله استیجینگ کامیتم که مشخصه دیگه
از استیجینگ رد میکنه دیتا رو ذخیره
میکنه
و دیتابیس در حقیقت ذخیره میشه داخل
دیتابیس دیتامون
خب بریم اینو چک بکنیم
اول من رانش کنم
سی دیوز
خب
وچ انمنتمون فعال نیست بچهها
خب میگم یوبیک
میل د نقطه ابش
تایتل آها آها آها آها همه دو نقطهست بچهها من اشتباه چون کپی
پیست کردم و آوردم اصلاً حواسم نبود بیا
اوکی
درست شد خب میریم اول کتابامون لیستشو
بگیریم
این دقت ببخشید کتاب میگم تووهایی که
داشتیم سه تا بود
حالا بیام اینجا یه توو جنریت بکنم
چی بذاریم مثلاً لرنینگ
فرنچ مثلاً زبون فرانسوی
براتش مثلا سه باشه اینم باشه فکس خب ببینیم کار میکنه
۲۱و برگردون میام این بالا اگزکیوت میکنم
یه دونه جدید اینجا اضافه شد.
خب بریم سراغ ریکوست آپدیت یا پوت اونم
درست بکنیم با همدیگه
میایم اینجا
باز من مینویسم بچهها بعد یه بار آخر سر
کامل توضیح میدم
خب اینو من نوشتم فقط اینجاشو من تغییر
بدم
تقریباً بچهها همه چی مثل قبله ما اینجا یه دونه اند پوینت مشخص کردیم استاتوس
کدشم نوشتیم یم بعد دقیقاً اینجا فانکشن
نوشتیم به عنوان ورودی یه آیدی داریم و یه
دونههم اون بادی ریکوستمونه که میره داخل
توتو ریکوست برای اینکه ولیدیشن انجام بشه
داخل پایدنتینگ
بعد یه مدل میسازیم
اینستنس از مدلمون میسازیم بعد یه نکته که
وجود داره اینه که
توی
در حقی آ ببخشید عذخواهی میکنم مدل نمیسازیم اینجا کوری میزنیم به
دیتابیسمون تمام تووها رو میگیریم بعد یه
فیلتر روش میزنیم اون توویی رو میخوایم
که آیدیش برابر آیدی ورودیمون باشه و
میگیم همون اولی هم که پیدا کردی که
برامون کفایت میکنه نرو سراغ بقیه چون یه
دونهست یونیکه
اگه چیزی پیدا نکنه خطا برمیگردونه میگه
همچین درق توویی وجود نداره آیدی که داده
آیدی معتبری نیست اما اگه وجود داشته باشه
میاد
تو قبلی رو مقادیرشو با مقادیر جدید تغییر
میده آپدیت میکنه و در نهایتم میبره تو
دیتابیس ذخیره میکنه بریم یه دق چکش
بکنیم
خب من یه دونه اینا رو کپی میکنم بیام پایین توی اینجا
خب خب
آیدی رو میدم آیدی مثلاً چند بود آیدی یک
البته که باید اینو به اینجوری کپی کنیم
بچه
خب آیدی چنده؟ س آیدی س دیگه آیدی رو اینجا بچهها نیاز نداریم بفرستیم اینو
باید بردارم پراریتیشو میکنم سه یا ۴
همین فقط همین تغییر اگزکیوت
۲۴رو داد میام پایین این سه باید شده باشه
پرارتیش ۴ ببینیم شده
بله پرایتیش عوض شد
فقط یه حرکتی هم باید بزنیم مثل این کاری
که اینجا کردیم گفتم اینجا آیدی اینتیجر
بگ گفتم باید یه چک بکن بزرگتر صفر باشه
اینجاهم این همین چکه رو انجام بده
فقط نکتهای که هست اینه که وقتی شما اینو
اضافه میکنید اینو بچهها باید از اینجا
بردارید
بیاید بذارید قبل این اینو حواستون باشه این باید بیاد قبل این
قرار بگیره این جز داکیومنت خود پایدنتیکه
کاری به ما نداره
خب یه چکشم میتونیم بکنیم مثلاً بیایم
بگیم که اینجا که داریم اینو میزنیم
مثلاً بگیم منفی ۱
خب
ری بکنید
کنسل
منفی یکو اگزکیوت کن
بعد خطا بده نگاه کنید بعد میگه باید
بزرگتر باشه ۴۲۲
اینا باید بزرگتر از صفر باشه پس اینم
داره کار میکنه بریم ریکوست دیلیت رو هم
با هم پیاده سازی کنیم
خب میایم پایین اینجا میگم که خیلی سریع مینویسم دیگه
توضیحاتی آنچنانی نداره دیلیت خیلی ساده
است
به این آدرس و یک آیدی هم باید بده یعنی
مشخص باشه که کدوم در حقیقت
کدو قراره پاک بشه استاتوس کد استوس
۲۴۹ کانتنت میذارم م اینم
بعد
اسک دف
دیلیت
تو دو
دیپی ددی پی دپندنسی
تو دو آیدی که به عنوان ورودی داره میاد
باید اینتیجر باشه مساوی پس
گدم
زیرو بزرگتر از صفرم باید باشه
بعد میره داخل دیتابیسمون یه کویم میزنه
همه دیتاها رو میگیره
دی.
توی توس بعد یه فیلتر میکنم
میگه که اون تولوسهایی که آیدیشون برابر
توو آیدی ورودی.
فرس من هی یادم میره این تولوسو برسم مدل. س
خب همون اولیو پیدا کنید اگر دقیقاً بچهها
یه تیکه شبیه اینه اگر نبود
یه خطایی برگردون دقیقاً همین خطا اما اگر بود چیکار باید بکنی باید پاک کنیش درسته
پس میگم دیبیدا
کوری
تدوس دا فیلتر
تودوس
آیدی
پیدا کرده چیکار کن دیلیت کن در نهایت کامیت
توی دیلیت میگم که میخوام اولی رو پاک کنم
۲۴رو برگردوند
نگاه کنید اینجا آیدی سرو داریم چارو داریم پجو داریم یکو دیگه نداریم یک پاک
شد برای تست بریم آیدی سه رم پاک کنیم
یعنی کدوم یعنی فید د کت
سه
پاک شد اینم از این بچهها
این مبحث این قسمتمون تموم شد جلسه بعدی
برگردیم میخوایم بریم سراغ مبحث بعدی این
قسمت بذار ببینم چیه سرفصل بعدیمون
میخوایم راجع به آتنتیکیشن و آتوریزیشن جلسه بعدی صحبت بکنیم. فعلاً خدانگهدار.