از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 12 دوره جامع فریم ورک 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 واقعی بساز در انتها آمادهای کدت را روی سرور/ابر بالا بیاوری اگر این دوره برات مفید بود، لطفاً لایک، سابسکرایب و کامنت یادت نره تا فصلهای جدیدتر و پروژههای بیشتر بسازیم 🙌
اطلاعات جدولو بخونه به ما نشون بده.
بریم شروع بکنیم.
دقیقا مثل کاری که همیشه انجام میدادیم میام
یه دونه فانکشن تعریف میکنم د اسمشو
میذارم گت
دی بیزار
سشن لوکلم باید ایمپورت کنید از فصل دیتابیس
خب بریم راجع به این صحبت بکنیم
کاری که بچهها این قسمت انجام میده اینه که ما هر بار که میایم یک ریکوستی رو
ارسال میکنیم سمت دیتابیسمون
این گت دی بی میاد یک سشنی رو برا اون
دیتا دیتابیس اون ریکوسته درست میکنه و
بعد از اینکه کارشم تموم میشه میاد
دیتابیسو میبنده اون سشنشو نمیذاره باز
بمونه اگر من اینجا از ریترن استفاده بکنم
به جای گیلد بچهها این اتفاق نمیفته پس
حتماً باید حواستون باشه که ریترن استفاده
نکنید پس این فقط وظیفهش اینه که اون
ارتباطه رو برای ریکوسته با دیتابیس ایجاد
بکنه و بعدم که کارش تموم شه ارتباطو
ببنده
خب حالا بریم سراغ قسمت بعدی خود ایپیآیو
بنویسیم
[موسیقی]
بعد ایپیآی میایم چیکار میکنیم دقیقا مثل
همین کاری که همیشه انجام میدیم مثلا اپ
گت
اسلش خب میگم که ایسینگ
دف
[ __ ]
حالا اینجا من باید
دقیقا اون دیتابیسمو مشخص بکنم میم اینم
میسم انوتیتد
تیدد
یه خطایی میده میگه این ایمپورت نشده میتونید ایمپورت کنید همین جا کویک فیکسو
بزنید ایناش
اینجا ایمپورتش میکنم
بعد میگم سشن
سشنم الان داره گیر میده اینم کویک پیکس میزنید
اینو دیگه نباید چیز میگه حالا اشکال بریم جلو
دپند
اون گت دی بی رو بهش میدم دپز باید ایمپورت بشه
داش
باید خودش ایمپورت میکرد ایمپورت نکرد دسته مینویسم اشکال نداره میگم فرام
اسکالکمی
ایمپورت بکن سشنو که این خطا هم داره
خب ما ارتباطمون رو حالا
میایم اینجا میگم که وقتی این فانکشن فراقونی شد ریترن بکن
دی
اوکی خب حالا بریم اپونو ران کنیم ایپیآیو تست بکنیم
من از این دیتابیس بیام بیرون
خب حتماً بچهها تو مسیر تولوس باشه
کنترول سی بزنید دو دفعه بچهها میاید
بیرون
یه بار اینو پاکش کنم صفحه خالی خالی بشه
خب میگم که یوبیکو
تولدوس دو نقطه مدا پیوا دش دش
ریلود
درست شد تو مین باید میرفت اپو چیز میکرد برعکسش
خب درست شد
تست بکنیم اگزکیوت دیتابیسمون کل دیتاشو
بهمون برگردوند بچهها
پس داره کار میکنه.
اینم از این. پس ما اتصالو با دیتابیسمون
برقرار میکنیم یه سشنی رو بعد ریکوستمون
که ارسال میشه اون سشن برقرار میشه کارشم
که تموم میشه میاد سشن رو میبنده. حالا
یه نکته ریزی اینجاست بچهها
اینو چون من قراره مرتب استفاده بکنم خب
اینو برای اینکه دوباره هی ننویسم چون
جلوترم لازمش دارم. ببین اینجا یه وریبل
تعریف میکنم دی بی دپندنسی
اینو میذارم برابر این و دیگه اینو هر جا
مینویسم اینجوری کار راحتترمش میره و در
حقیقت کد کمتری لازم شما بنویسید
بریم سراغ ادامه کارمون
خب بریم یه دونه ایپیآی دیگه بنویسیم این
یکی برا اینه که اگر خواستیم یک رکوردی از
ج حداقل تیبلمون رو با آیدیش پیدا بکنیم
میام میگم که اپ.g
اگر به این آدرس
تدوز اسلش توز آیپی آیدی یعنی اگه آیدی رو پاس داده
بود
چرا داره ایراد میگیره؟ خب
سینگ دف
[ __ ]
تو دو
بی دو نقطه دی بی دفندنسی و تو دو
آیدی
نقطه اینتیجر
دات اینجا باید یه فیلتری بذارم یعنی همه دیتا رو نمیخوام میگم که تودوس.آی آیدی
برابر باشه با اون تولوس آیدی که پاس داده
داخل این
و یه نکته دیگه این میاد چیکار میکنه بچهها؟ میاد اون آیدی که ورودی گرفته رو
دونه دونه با آیدی رکورد جدولش چک میکنه
و تا انتهای جدولم میره.
خب برای اینکه جلوش رو بگیرم تا انتها نره
میگم همون اولی که پیدا کردی کفایت میکنه
چرا؟ چون آیدی من یونیکه جلوتر قراره چیز
دیگه پیدا بکنیم
اینم یه استرا انداختم و درست شد خب حالا میگم اگر
مدلو این اسمشم به نظرم بردارم باسمتره
خب
اما اگه چیزی پیدا نکردی ریز کن اچ تیتی
پی
اکسپشن با استاتوس کد بذارین ایمپورت کنم که گیر
نده کویک فیکس
ایمپورت خب استاتوس
کد ۴۰۴ و دیتیل راجع به این صحبت کرده
بودیم جلسات قبلی
تو دوت
فوند خب
این چی میگه
د از دی فیکسش چیه بیا این چی میگه
اینه با همین کار آ اینجا هم اینجوری نوشت نوشتیم.
اه
خب میتونیم یه کار بکنیم بیایم مستقیماً
توشو بیاریم که هی نخوایم در حقیقت اینو
به قول گفتنی ایمپورتشو با مدل بنویسیم
چون این بهینه نیست دیگه شما حدا خلاص مدل
فلان فلان مستقیما میام میگم که
فرانت
مدل
ایمپورت بکن توس
البته خود مدلم لازم داریم ما پس بذارید این مد اوکی
اینم از این
دیگه نکتهای نداره بریم چکش بکنیم میام
اینجا یه ریکروشنو میدم
ایناش
میگم مثلاً آیدی یکو بهم برگردون
یکو برگردوند
فقط د تا نکته داره این بچهها با توجه
چیزی که قبلاً یاد گرفتیم یکی اینکه من
زمانی که ریکوستم ساکسسس فوله باید اینجا
یه استو استاتوس کدی برگردونم یادتون باشه
میومدیم این کارو میکردیم خب یکی از
جلساتمون راجع به این صحبت کردیم چهجوری
این کارو میکردیم میادیم اینجا یه
استاتوس اضافه میکردم استاتوس کولد بعد
استاتوس
استاتوس اینم باید ایمپورت کنم بذار
ایمپورتش بکنمشم
اصلاً کلاً شور نداره نمیفهمه که این باید ایمپورت بشه
خب حالا
خب میام اینجا مینویسمش اینپ خورد
استارلت استاتوس اینجوری میتونید ایمپورتش کنید
بچهها
زیاد نباید گیر بدی
اوکی خب کدوم کدشو میخواستیم بچهها اچ و دیگه
و نکته بعدی هم که باید اضافه بکنیم ولیدیشن آیدیه یعنی من اینم باز قبلاً یاد
گرفته بودیم که باید ولیدیشن داشته باشه
آیدیمون اینجا میگم که اینتجر مساوی پت
پتم باید ایمپورت بشه گریدندم صفر بزرگتر
از صفر باشه اینم
خب الان باید یه چکش بکنم اینو ببینم که اگر آیدی رو مثلاً من بزنم
منفی یک دیگه نباید قبول بکنه بله اوکی
و نکته آخر یه استاتوس کد ۲۰۰ به این بالایی هم اضافه کنید بچهها
این
که اینم داشته باشه بریم بریم بیایم
ادامهشو جلسه بعدی صحبت کنیم فعلاً
خداحافظ