در رابطه با پیشنیاز فلسک

سلام من میخام برای اولین سمت سرور با فریمورک فلسک پایتون چه پیش نیازایی باید بدونم.

1 Like

فقط پایتون و یه سری مفاهیم مقدماتی وب (‌در حد اینکه request/response چیه )

اینا مربوط ب مبحث شبکه هستن ؟
پایتون بلدم

نه به اون صورت. خیلی به مفاهیم اولیه وب بر می گردند.

1 Like

داکیومنت خود فلسک خیلی کامله، فکر نمیکنم به پیش‌نیاز احتیاج داشته باشید.
به نظرم یک بار داکیومنت رو کامل بخونید و بعد شروع کنید از روی داکیومنت، پروژه رو بسازید و هرجا لازم شد به داکیومنت رجوع کنید و قطعه‌کد‌هاش رو استفاده کنید.

نیازی به دونستن شبکه ندارید. اصلا ربطی نداره.
فقط باید یه مقدار درمورد ریکوئستهایی که بروزر ارسال میکنه و پاسخی که سرور میده اطلاعات داشته باشید که فکر میکنم در طول مسیر یاد بگیرید.

باید یه آشنایی با دیتابیسها هم داشته باشید. گرچه ممکنه اصلا لازم نباشه query بزنید ولی به هر حال باید بلد باشید.
بخش متفاوت (شاید یه کم سخت) ماجرا، زمانیه که میخواید پروژه رو روی سرور قرار بدید. کانفیگ‌های نرم‌افزارهایی مثل nginx و uwsgi شاید یه کم براتون سخت باشه و نیاز به دانش لینوکس داره. (زیاد سخت نیست و زیاد مباحثش پیشرفته نیست)

1 Like

کلا ساختار پروتکل http رو بدونی خوبی.
و یه سری قیدها مثل POST, PUT, GET, PATCH

من پایتونو خوب بلدم چقد طول میکشه فلسک خوب یاد بگیرمش؟

شاید ۲ساعت، شاید کمتر.
البته فقط فلسک نیست. باید طراحی صفحه و دیتابیس هم بلد باشید.

بنده بخاطر این نرفتم سراغ فلسک mysql html css یاد میگرفتم
پس خیلی اسونه فلسک:grimacing:

چیز خاصی نداره و اصلا نیاز به وقت گذاشتن برای یادگیری نیست. همزمان با خوندن داکیومنتها میتونید یه پروژه‌ی تستی بسازید.
درمورد html و css و sql هم زیاد سخت نگیرید. لازم نیست همه‌چیز رو بلد باشید تا بتونید شروع به کار کنید.

من چندساله طراحی وبسایت انجام میدم (منظورم گرافیک نیست، برنامه نویسی میکنم و سایت میسازم) و امروز برای اولین بار با چیزی به عنوان scrollbar-color و scrollbar-width (مربوط به css) آشنا شدم و تا الآن هم لازمم نبوده!

ساخت وبسایت حداقل به دو بخش front-end و back-end تقسیم می شه.
به عنوان کسی که تخصصش front-end نیست، اشکالی نداره اگه این چیزها رو بلد نباشم! (ولی خیلی مهمه که باهاش آشنا باشم)‌
ولی از طرف دیگه، انتظار میره بتونم معماری دیتابیس پیاده سازی کنم برای پروژه و کوئریهای ساده و نسبتا پیچیده‌ی sql بنویسم. (اگه بتونم کوئریهای خیلی پیچیده بنویسم مسلما بهتره ولی فعلا بلد نیستم :sweat_smile:)

3 Likes
1 Like

بهم گفتن باید خوب بتونم ظاهر سایتو بزنم بعدم برای چیز های مثل رزومه اینا :grin: منم یادش گرفتم :roll_eyes:

خب یاد گرفتن این چیزا واجبه.

سلام . من هم از دوست داران فلسک هستم اما فقط برای api و کار های ساده استفاده میکنم .

دو تا دوره برای flask restful api هست اولی سطح مبتدی هست و پیش نیاز هارو هم درس میده و دومی پیشرفته . اگر قانون کپی رایت و اینا براتون اهمیتی نداره در سایت های ایرانی رایگان هست .

لینک در یودمی :

https://www.udemy.com/course/rest-api-flask-and-python/

https://www.udemy.com/advanced-rest-apis-flask-python/

روی همین مطالبی که اموزش میده یک دوره برای تست نویسی رست ای پی ای هم داره که این لینک هم بهتره سر بزنید اگر مشتاق بودید .

تمام آموزش ها

یک دوره ultimate flask هم هست که با فلسک چندتا پروژه میسازه لینک در زیر :

https://www.udemy.com/course/the-ultimate-flask-course/

2 Likes

من فلسک رو شروع کردم ولی اولین بارمه اومدم سمت سرور این فرم ایجاد کردن با wtf رو نمیفهمم فقط ایمپورت میکنم تا اینجا خوب یاد گرفتم ولی wtf رو درک نمیکنم

قانون شماره۱: هیچوقت به input کاربر اعتماد نکن.
قانون شماره۲: هیچوقت به استفاده‌ی منصفانه‌ی کاربر (و اطرافیانش) اعتماد نکن.

درمورد قانون اول باید بگم که شما یه فرم داخل صفحه میذارید و از کاربر ایمیلش رو میپرسید. چه تضمینی وجود داره که کاربر «1234» وارد نکنه؟ پس باید ورودی کاربر چک بشه.
درمورد قانون دوم، پیشنهاد میدم درمورد CSRF مطالعه کنید. استک‌اورفلو و این تاپیک میتونه کمکتون کنه.


برای افزایش امنیت و دقت فرمهای وب، یه لایبرری پایتون درست کردن به نام WTForm که فلسک اومد نسخه‌ی خودشو از اون لایبرری ارائه داد به نام flask-wtform.
کاری که انجام میده اینه که شما با استفاده ازش میتونید فرمهای داینامیک‌تری بسازید و ورودی کاربر رو چک کنید ببینید valid هست یا نه و البته یه csrf token هم به فرم‌ها اضافه میکنه که مطمئن بشه این ریکوئست از صفحه‌ی وبسایت شما اومده. نه یه لینک سرگردون توی وب. (مطمئن بشه این ریکوئست از صفحه‌ای اومده که خودش رندر گرفته و به کاربر فرستاده)

مسلما اینکارها رو بدون استفاده از wtform هم میتونید انجام بدید، صرفا یه سری نکات هست که باید بهش توجه کنید و توی پروژه اعمال کنید. ولی وقتی یه لایبرری برای یه کاری که به امنیت مربوط میشه وجود داره، کار عاقلانه اینه که ازش استفاده کنیم. حداقل مزیتش اینه که چند نفر یه مدت طولانی روش وقت گذاشتن و تایم کمتری از ما گرفته میشه، مزیت دیگش اینه که چندنفر هستن که اون لایبرری رو به‌روز‌رسانی میکنن و بدون اینکه کاری انجام بدیم، نرم‌افزار ما بهتر و بهتر میشه.

احتمال میدم این ویدیو و ۴ تا ویدیوی بعدی از همین سری بتونه کمکتون کنه.


یادداشت:
من فقط ۲تا نکته رو بالای مطلبم یادآور شدم. داستان امنیت توی دنیای وب خیلی بیشتره ولی کلیاتش همین ۲تاست.

پس اونی ک به عنوان secret_key ست میکنن برای اینه ک بفهمن ریکوعست از صفحه ای که فلسک خودش رندر کرده هست یا نه؟

بله، درسته.