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