از Pista Academy حمایت کنید
برای مشاهده سایر جلسات و ادامه یادگیری، وارد صفحه دوره شوید.
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه اول دوره FastAPI، مدرس با مقدماتی درباره این فریم ورک به عنوان یک ابزار سریع و با عملکرد بالا برای توسعه وب معرفی میشود. ابتدا محیط مجازی ایجاد شده و لازمترین پکیجها نصب میگردد. سپس یک پروژه اولیه با استفاده از FastAPI ایجاد شده و عملیاتی مانند ریکوست گت به عنوان اولین قدم در این پروژه معرفی میشود. در بخش بعدی، مدرس با ارائه مثالی از API جیسون پلس، مفهوم اند پوینت (Endpoint) در FastAPI را توضیح میدهد و یک اند پوینت ساده ایجاد کرده و آن را اجرا میکند تا عملکرد آن را بررسی میکند.
نکات کلیدی
FastAPI یک فریم ورک با عملکرد بالا و ساده در یادگیری برای توسعه وب است.
ایجاد محیط مجازی و نصب لازمترین پکیجها برای کار با FastAPI انجام شد.
اند پوینت (Endpoint) در FastAPI به عنوان آدرسی عمل میکند که دادههای مورد نیاز را به کاربران برگرداند.
مدرس یک اند پوینت ساده با استفاده از FastAPI ایجاد کرده و آن را اجرا کرده تا عملکرد آن را بررسی کند.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای کار با FastAPI، نرمافزارهایی مانند Python و pip نصب شدهاند و محیط مجازی ایجاد شده است.
مدرس با استفاده از FastAPI، یک اند پوینت ساده ایجاد کرده و آن را در محیطی اجرا کرده تا عملکرد آن را بررسی کند.
در جلسه اول، محیط مجازی ایجاد شده، لازمترین پکیجها نصب شده، یک پروژه اولیه با استفاده از 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 واقعی بساز در انتها آمادهای کدت را روی سرور/ابر بالا بیاوری اگر این دوره برات مفید بود، لطفاً لایک، سابسکرایب و کامنت یادت نره تا فصلهای جدیدتر و پروژههای بیشتر بسازیم 🙌
خیلی وقته داریم ضبط میکنیم. چند تا دوره
هم توی کانالمون داریم.
این سمت حوزه وب ما دوره جنگا رو الان
تقریباً تا وسطاش من ضبط کردم
و فست ایپیآی هم دوره بعدیه یکی از دیگه
از فلمورکهای در حقیقت پایتونه که میخوایم
شروع بکنیم
بازم خواهیم داشت دور مرتبط با حوزه وب و
پایتون
سعی میکنم یه چند تا پروژه خیلی خوب هم با
جنگو و همچین فصل ایپیآی بهتون
نشون خواهیم. دورهشو ضبط میکنم
یه مقدار سریعتر داریم ضبط میکنیم این
روزا سرعت بالاتر.
اما اصلا فست ایپی چی هست و به چه دردی
میخوره؟
چیزی که خود وب سایتشم داره میگه میگه فست
ایپی یه فریمورکه پس کتابخونه نیست یک
فریمورکه
پرفورمنس خیلی بالایی داره
بعد یادگیریش میگه ساده است حالا میریم
جلوتر میبینیم سریع میتونید کد بزنید و
برا محیط پروداکشنه
باز این توضیحاتو اینجا آورده الان بچهها خیلی از سایتهای نسبتاً
معتبر و حتی بزرگ از فستیپی استفاده
میکنم. فکر کنم تو همین صفحه اولش چند تا
مثال زده باشه. حالا این کو رد کنین
اینجا مثالشو نزده که چه سایتهایی الان
دارن از ایپی استفاده میکنن.
اینام که آدمایین که دارن دولپ میکنن و کمک میکنن برای توصیف بپی اینجا نزده ولی
فقط برای که بدونید مثلا یه چند مثالش چند
تا سایتو بهتون مثال بزنم
شرکتهایی مثل مثلا نتفلیکس از فست ایپیآی الان داره استفاده میکنه
مایکروسافتم
داره توی ابزارهای داخلیشون برای حوزه
ماشین لرنینگ و ایآی از فست ایپیآی
استفاده میکنه اور استفاده میکنه برای
یکی از پروژههاش.
بعد ساند ک سند کلاودم استفاده میکنه.
ساند کلاود ن سند کلاود یه سایت دیگهست و
حالا یه تعداد دیگه از سایتها و شرکتهای
دیگه که دارن از فصل ایپیآ میکنن.
بدون هیچ مقدمهای بریم شروع کنیم کارمونو
من میرم توی
رفرنسش مثلاً
خودش آموزش داره طبیعتاً دیگه جا یه
داکومنتی چیزی دارم کاری نداره میخوام
میخواستم پیداش کنم
خب بریم شروع کنیم ک زدنو و محیط ترمینالو باز کنم
میام رو حالت کامند پرا اینجا یه دایرکتوری خودتون درست کنید
بچهها هرچی اسمشو دوست دارید بذارید هیچ
فرقی نمیکنه
اولین کاری که باید بکنیم اینه که بیایم
یه محیط مجازی درست بکنیم یه ویلچال
انوایرمنت درست کنیم داخل اون در حقیقت
کار بکنیم محیط مجازی رو میدونید دیگه یه
محیط ایزولهست از سیستم خودتون و داخل اون
هر کاری که میخواید انجام بدید و هر
پکیجی که نیاز داریدو نصب میکنید
به عنوان مثال الان نگاه کنید
این لیست پکیجیی که رو سیستم من نصبه
من تو محیط مجازی الان نیستما توی خود
ماشین در سیستم خودم هستم من این پکیجا رو
الان دارم استفاده میکنم و نصب رو سیستمم
خب ببینید فست ایپیآی هم من دارم رو
سیستمم الان
فستون دارم خب پس به صورت جنرالی من رو سیستمم م دارم
حالا میخوام یه محیط مجازی درست کنم و
داخل اون کار بکنم پس میام چیکار میکنم
میام میگم که پایتون پس احتمال پایتونم رو
سیستمتون نصب باشه و فرضم بر این که اینا
رو نصب دارید وی ای ام وی یه اسمی براش
بذارم فست
ایپیآی
ای ام وی
یه دایرکتوری دقیقاً با همین اس تو همون مسیر درست میکنه
بعد بعد از اینکه محیط مجازیتون رو ساختید
کار بعدی که باید بکنید اینه که باید اینو
فعالش بکنید
اجازه ب این تموم باشه خب این ساخته شد
حالا یه بار دیگه من پیپ لیستو میزنم
ببینید الان تو محیط مجازی من
آ اکتیوش نکردم هنوز نه ببخشید هنوز
اکتیوش نکردم برای اکتیو کردنش
کاری که میکنید اینه که تو همون میرید تو
همون دایرکتوری
فست ایآی ای ام وی خب خب بعد میرید توی
پوشه اسکریپتس
و اونجا یه فایلی هست به نام اتیat. بت
الان نگاه کنید این ویرچوارومنت من فعال شده. وقتی اینو میبینید یعنی فعال شده.
اگه تو محیط لینوکس دارید کد میزنید
باید قبل این یه سورس بذارید آخرشم این
داتپتشو بردارید. تو محیطهای مختلف فرق
میکنه چهجوری این فعال میشه توی بشم
متفاوته تو بش این دات بتو نیاز نداره
اولش یه دات میذارید و اوکی میشه خب
حالا یه بار دیگه من پیپ لیستو بزنم ببینم
الان اینجا چی دارم نگاه کنید تو محیط
مجازی من محیطم کاملاً ایزولهست از سیستمم
فقط یه پیپ دارم با یه ستآپ تولز یعنی
اینا رو ندارم چرا چون یه محیط مجازیه که
من ساختم ایزوله است و جدا از سیستم خودمه
پس من نیاز دارم که الان تو این محیط
مجازیم چون قراره که با فست ایپیآی کار
بکنم بیام چیکار بکنم بیام فست ایپ پیآیو
نصب بکنم میام میگم پیپ
اینستال
فست
ایپیآی شما پایتون نصب بکنید خودکار پیپم همراهش نصب میشه
خب این میره دانلود بکنه و
در حقیقت فست ایپی نصب بکنه که ما بتونیم
باهاش کار بکنیم.
نگاه کنید الان فست ایپی هم تو لیستم اومد یه سری چیزای دیگه هم اومده که خب
احتمالاً دپندنسیاشه دیگه اونایی که لازم
داره برای کار کردن نسخه ۱۱۸ هست حالا
من فصل ایپیآی نصب کردم یه چیز دیگه رم
باید نصب بکنیم باز توی سیستمم بودا ولی
خب اینجاهم باید نصبش بکنیم میگم پیپ
اینستال
یو ویل اگه درسته نوشته باشم.
خب اینم نصب شد. یه چکم بکنیم که نصب باشه. اینم نصبه. خب اینم از محیط
مجازیمون ساختیم و تمام چیزایی که لازم
داشتیمو در حقیقت
نصب کردیم. حالا اگه خواستید محیط
مجازیتون رو دیکتیو بکنید دقیقا میزنید دی
اکتیو.
اشتباه بشم ببخشید دیکیا اکتیویت الان مطمئنزیم غیر فعال شد دوباره
میخواستید فعال کنید همون چیزی که نوشته
بودیم اینو میزنید و فعال میشه و دوباره
خیلی فعال میشه خودتون
خب این از ساختن مجازی و نصب در حقیقت پکیجهایی که لازم دارید بریم سراغ ادامه
کارمون
خب بریم سراغ اولین پروژهای که میخوایم با همدیگه انجام بدیم. ما تمام مباحثی که
بچهها تو این دوره قراره آموزش بدیم رو
در قال پروژه بهتون آموزش میدیم. یعنی چند
تا پروژه مختلف و پروژه کوچیک کوچیک که در
حقیقت کارو یاد بگیرید. خب من اینو دوباره
اکتیو میکنم چون باهاش کار دارم.
خب این اکتیو باشه. بعد یه کار دیگه هم
بچهها انجام بدید. بیاید توی اگه با ویس
کد کار میکنید اگه با مثلاً پای چارم کار
میکنید توی پایچارم این پایین سمت راست
یه چیزی هست به نام اینترپریتوری مفسر
مفسرتون رو بذارید روی فست ایپیآی فولدر
لیب فولدر اسکریپتس بذارید روی این
پایتونه
پس مفصلتونو تغییر بدید به این مسیر اگه
با وی اس کد کار میکنید این بالا توی
کامنت پلت سلکت اینترپریتور هست اگه
دیفالت نیست بنویسید میاد
اینجا من انتخاب میکنم میگم رو این باشه
میگ خودشو کامنت کرده پس توی وی اس کدو که
بهتون گفتم تو پای چارم این پایین سمت
راسته اینجاست
خب بریم شروع کنیم اولین پروژه رو
میخوایم درست کنیم میخوایم یه دونه
پروژه درست کنیم یه چیز شبیه مثلاً یه
کتابخونه طوری مثلاً یه لیستی از کتاب
باشه من بتونم ریکوست بزنم و مثلاً کارای
مختلف انجام بدم ما عملیاتهای های مختلفی
بچهها توی ایپیآی داریم.
بذار اینم بنویسم براتون.
خب بذار من یه عکس نشونتون بدم.
این عکسو نگاه کنید بچهها. ما یه وب پیج
داریم. خب توی وب پیجمون کاربرمون میاد یه
سری ریکوستی رو میفرسته سمت فست ایپیآی.
یه سری اچیتی پی ریکوست و فست ایپیآی بهش
جواب میده.
به این آینده. خب ما یه سری میگن کرا
آپریشن یعنی چی؟ یعنی یه سری ریکوستهای
مختلف ما داریم تایپهای ریکوستهای مختلف
داریم که سمت در حقیقت فست ایپیآی
میتونیم ارسال بکنیم.
یه کریت داریم که مشخصه شما زمانی که
میخواید یک چیزی رو درست بکنید [ __ ] داریم
برای خوندن دیتا آپدیت داریم برای آپدیت
کردن دیتا دیلیت داریم برای دیلیت کردن
حالا این ۴ار تا عملیات
سمت فست ایپیآی یک معادلی داره بذار من یه
عکس دیگه هم براتون بیارم
خب اینو نگاه کنید بچهها معادل کریت سمت اچتی پی ریکوست میشه پست
پس ریکوست پست یعنی اینکه شما میخواید یه
چیزی رو کریت بکنید [ __ ] بخواید بکنید
دیتایی رو بخواید بخونید باید ریکوست گت
بزنید
بخواید آپدیت بکنید باید ریکوست پوت بزنید
دیلیت بخواید بکنید ریکوست دیلیت بزنید
الان این جلسه ما میخوایم بریم یه دونه
ریکوست گت یه دونه درست بکنیم برای این
اپلیکیشنمون که بتونیم ریکوست بزنیم دیتا
رو بگیریم بریم شروع بکنیم کارمونو
خب اولین کاری که میکنید اینه که
تو همین مسیر در حقیقت پروژهتون
یه فایلی درست میکنید اسمشو هرچی دوست
دارید بذارید مثلاً من توی
سورسم یه فایلی درست میکنم اسمشو میذارم
مثلاً بوکس چون راجع به کتاب پروژمون پیوا
خب
این بذارید باش حالا با چون کار دارم
بذارید باشه
اینم یه ذره کوچیکترش کنیم حالا من قراره
که یک اصطلاحاً اند پوینتی رو درست بکنم
خب که کاربر به اون اند پوینته میتونه
ریکوست بزنه و در حقیقت
اطلاعاتی رو دریافت بکنه حالا اند پوینت
چیه بذارید یه چیزیو نشونتون بدم
یکی از ایپیآیهای خیلی معروف و فیک که توی
اکثر پروژهها ازش استفاده میشه جیسون پلس
هولدره اینجا نگاه کنید بچهها
اینا رو میبینید اسلش پست اسلش کامنت
اسلش آلبوم اسلش فوتو فلان فلان اینا اند
پوینتن به اینا میگن اند پوینت یعنی شما
یک آدرسیه که به اون آدرسه ریکوست میزنید
دیتا بگیرید بخونید آپدیت کنید کارای
مختلف اینجا خود این جیسون پرسلور اومده
چند تا اند پوینت درست کرده برای
پروژههاتون میتونید استفاده کنید مثلاً
من اگه بذارم م اسلش
پست
۱۰۰ تا پستو بهم برمیگردونه نگاه کنید
حالا ما قراره دقیقاً همینو درست کنیم
یعنی قراره یه دونه اند پوینتی درست کنیم
که اگر تو یوآرl اینجا وارد بکنم یه دیتا
رو اینجوری بهم برگردونه بریم اینو با هم
درست کنیم
با فست ایپیآی اولین کاری که باید بکنم
طبیعتاً من فست ایپیآیو بیارم
راستی آ درسته من میخواستم ببینم ویچور
حتما فعال باشه فست ایپیآی
فرام
آ فرام فست ایپیآی ایمپورت کن
قاطی کردم ایمپورت کن
فست ایپیآیو
بعد یه دونه اینستنس ازش درست میکنم
اسمشو میذارم اپ
حالا هر کدوم از این اند پوینتها یه فانکشنه
بچهها یه فانکشن
سنکرونم نیست اسنکرونه دف یه اسم براش
میذارم مثلاً فرست ایپیآی
خیلی ساده است این فانکشنمون چی ریترن
میکنه ریترن میکنه مثلاً یه دونه آبجکتو
شبیه همین چیزی که الان اینجا دیدید اینا
یه مجموعه از آبجکتن یه آرایهای از
آبجکتان این یه آبجکت ریترن میکنه که
مسیج کلیدشه و ولیوشم مثلاً هلو
ورد
حالا من باید یه اند پوینت برای مشخص بکنم میارسم اپ
دات از نوع گت اگر کسی به آد اسلش ریکوست
داد این دیتا رو بهش
باید برگردونید اگر کسی به اسلش ریکوست
داد چیزی جلوش ننوشته داشتما اسلش خالیه
اینو باید تو برگردونیم خب حالا بریم
پروژه رو رانش بکنیم و بعد توی بروزرمون
ببینیم که کار میکنه یا نه برای ران
کردنش از یویک کورنی که نرض کردیم استفاده
میکنیم میتونید با خود فست ایپیآی هم
رانش کنیدا ولی من با یویکون این کار
میکنم
یویکون بوکس دو نقطه اپ دش ریلود
میگه برای اینکه بخوای حالا دقیقاً این پروژه رو ببینی باید بری به این آدرس ۱۲۷۱
لوکال هاستمونه پورت ۸۰۰۰ بریم اینو بازش
کنیم
الان نگاه کنید من به این آدرس ریکوست زدم چی بهم برگردون دقیقاً همون چیزی که
مدنظرم بود من یه ذر بزرگش کنم اینو نه
به اسلش ریکوست زدیم دیگه
به این آدرس ریکوست زدیم اینو برگردون
عذرخواهی میکنم یا آب بخورم من.
خب حالا بیایم آدرس اند پوینتمونو عوض کنیم.
اینجا من اینو بکنم مثلاً بکسی.
حالا اگر من اینجا اینو ریفرش بکنم دیگه
هیچی برنمیگرده. نگاه کنید دیتایی
برنمیگردون. چرا؟ چون اند پوینتم عوض
شده. حالا اگه بزنم
ریکوست گت به این اند پوینت دیتا رو بهم برمیگردونه.
خیلی خب فعلاً برای جلسه اول کافیه خیلی طولانیش نکنیم بریم بیایم جلسه این پروژه
رو میخوایم ادامه بدیم و بزرگترش بکنیم
فعلاً خداحافظ ‏S