فریم ورک flask چیست؟
فلسک یک چارچوب وب یا یک ماژول پایتون است که به شما این امکان را میدهد که برنامههای وب خود را به راحتی توسعه دهید. فریم ورک flask یک هسته کم حجم و دستورالعمل ساده قابل توسعه دارد. به عبارت دقیقتر فلسک یک میکرو فریم ورک است چرا که بسیاری از ابزارها و کتابخانههای رایج سایر فریم ورکها را ندارد. مثلا فلسک به طور پیش فرض نمیتواند با دیتابیس کار کند و فرمها را اعتبارسنجی نماید و برای این کار باید سراغ کتابخانهها و دیتابیسهای موجود بروید.

فلسک تا حدی از فریم ورک سیناترا که با روبی نوشته شده است تاثیر گرفت. سیانترا برخلاف بیشتر رقبای خود از مدل MVC پشتیبانی نکرده است و به جای آن روی ساخت وب اپلیکیشن با سرعت بالا تمرکز دارد. این فریم ورک امکانات پایه ای را برای ساخت یک برنامه تحت وب در اختیار شما قرار میدهد و اگر نیاز به ماژولهای بیشتر داشته باشید، میتوانید آنها را به پروژه اضافه نمایید. فریم ورک flask بر اساس ابزار Werkzeg WSGI و موتور قالب Jinja2 نوشه شده است که هر دو از پروژههای Pocco میباشد. با این هدف طراحی شده است تا هسته اصلی برنامه را ساده و مقیاس پذیر نگه دارد. همچنین به جای یک لایه انتزاعی برای پشتیبانی پایگاه داده، فلسک از افزونههایی برای افزودن چنین قابلیتهایی به برنامه پشتیبانی میکند.
تاریخچه فریم ورک flask
Flask اولین بار توسط Armin Ronacher از Pocoo ارائه شد. به گفته Ronacher، این ایده در ابتدا یک شوخی بود که بعدها آنقدر محبوب شد که به یک برنامه جدی تبدیل شد. پس از آن که روناخر و جورج براندل یک سیستم تابلو اعلانات نوشته شده در پایتون ایجاد نمودند، پروژههای پوکو Werkzeug و Jinja توسعه یافتند. در آوریل ۲۰۱۶، تیم Pocoo منحل شد و توسعه فلسک و کتابخانههای مربوطه به پروژه تازه تاسیس پالت منتقل شد.

امروزه فلسک در بین علاقه مندان به پایتون بسیار محبوب میباشد. از ماه اکتبر ۲۰۲۰، این فریم ورک دارای دومین ستاره در GitHub در میان چارچوبهای توسعه وب پایتون میباشد. فلسک در نظرسنجی توسعه دهندگان پایتون ۲۰۱۸، تنها با تفاوت اندکی پس از فریم ورک Django (جنگو) محبوب ترین چارچوب وب شناخته شده است. امروزه بسیاری سایتها با استفاده از فریم ورک فلسک طراحی میشوند. با استفاده از فریم ورک فلسک طراحی سایتهای شخصی، ساخت فروشگاههای آنلاین، طراحی سایت فروشگاهی، وبلاگهای شخصی و شرکتی، راه اندازی فرومها و طراحی سایت شرکتی امکان پذیر است.
چرا فریم ورک Flask؟
پایتون فریم ورک های وب دیگری مانند Django ،Bottle ،Tornado و غیره دارد،ممکن استاین سوال پیش بیاید چرا باید از فریم ورک فلسک استفاده کنیم؟ قبل از جواب دادن به این سوال باید این نکته را به یاد داشته باشید که هیچ کدام از فریم ورکها از دیگری بالاتر و بهتر نیست و با توجه به شرایط پروژه و نیازهای خود بهترین انتخاب را باید داشته باشیم. هر فریم ورک نقاط ضعف و قوت خودش را دارد. یادگیری Flask بسیار آسان است. یک جامعه قوی پشت زبان پایتون و فریم ورک فلسک قرار دارد که میتوانید هنگام به وجود آمدن مشکل روی کمک آنها حساب باز کنید. از مزایای خیلی مهمی که فریمورک Flask دارد این است هنگام کار با آن دست شما باز است. یعنی این فریم ورک کاملا انعطاف پذیر میباشد.

فریم ورک flask به قدری قدرتمند و توانا است که در بسیاری از شرکت های مطرح حوزه تکنولوژی که مطمئناً نام بسیاری از آن ها به گوش شما نیز خورده است استفاده می شود. در حقیقت flask امروزه در شرکت های LinkedIn ،Netflix ،Reddit و حتی Mozilla نیز استفاده می شود. هرکدام از این شرکت ها در حقیقت غول های حوزه خود هستند و استفاده از فریم ورک Flask در این شرکتها نشان دهنده توانایی و میزان قابل اعتماد بودن این فریم ورک میباشد.
ویژگی های فریم ورک فلسک
- پشتیبانی از استاندارد WSGI زبان برنامه نویسی پایتون
- مناسب برای موتور اجرای برنامه گوگل (Google App Engine)
- امکان ساخت کوکیهای با امنیت سطح بالا
- سیستم یکپارچه سازی برای اجرای آزمایشهای واحد
- دارای سرورهای توسعه دهنده و عملکرد مطلوب در رفع باگها
- مبتنی بر استاندارد یونی کد
- امکان دسترسی به افزونههای دیگر به منظور تقویت عملکرد
مزایای فریم ورک Flask
فریمورک Flask مزایای زیادی دارد که برخی از آنها را برای شما شرح خواهیم داد:
کد منبع مستند از مزایای فریم ورک Flask
کد منبع مستند برای مبتدیانی که میخواهند پایتون را یاد بگیرند بسیار مفید میباشد. این کدها و آموزشها، توسعه دهندگان را با جزئیات پیچیده درگیر نمیکند. همچنین به توسعه دهندگان جدید یا کسانی که تجربه کمتری در پایتون دارند توصیه میشود که فلسک را بیاموزند و قبل از انتقال به چارچوبهای کامل مانند Django، قطعات کوچکی از برنامههای وب را توسط آنها ایجاد نمایند. با توجه به اینکه فلسک پایگاه کد کوچکی است، توسعه دهندگان کنترل بیشتری بر روی کدهای خود دارند.

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

فلسک این امکان را میدهد تا مسائلی را که ممکن است به دلیل سختی سایر چارچوبها ایجاد شود، کاهش دهند. در عوض، توسعه دهندگان میتوانند از هر مولفه ای که میخواهند برای ساخت برنامههای وب خود استفاده کنند. برای مثال می توان از تکنولوژی ORM در این فریم ورک صرف نظر کرد و در عوض امکان استفاده از تکنولوژی های متنوع برای قالب سازی و مدیریت Taskها را در اختیار برنامه نویسان قرار داد.
آزمایش آسان
فلسک چارچوب ایده آلی برای آزمایش برنامههای وب است. در مقایسه با ساختار یکپارچه چارچوبی مانند جنگو، فلسک با فناوریهای نوظهور جدید در بازار بسیار سازگارتر میباشد. در مواقعی که توسعه دهندگان محصولات خود را به طور مداوم بهبود میبخشند، فلسک میتواند اجرای سریعتر را تسهیل نماید. اگر توسعه دهنده بخواهد ویژگیهای بیشتری را برای غنی سازی محصول اضافه کند، میتواند از فلسک برای یکپارچه سازی سریع استفاده نماید.
تعداد زیاد منابع آنلاین
فریم ورک Flask یکی از محبوب ترین فریم ورک های زبان برنامه نویسی پایتون است به همین دلیل کتابخانه ها، فایل های راهنما و آموزشی بسیاری برای آن در دسترس توسعه دهندگان وب قرار دارد.
معایب فریم ورک Flask
- مدیریت پروژه های بزرگ از طریق فریم ورک Flask کمی دشوار است.
- اگرچه ساخت API از طریق فریمورک فلسک امکان پذیر است اما به صورت HTML محور طراحی شده است.
- شیوه کار فریم ورک Flask بر پایه متغیرهای ThreadLocal و Global بنا شده است، نمی توان از کدهای Reusable یا تمیز استفاده نمود.
- طراحی فریم ورک فلسک برای برنامه نویسی غیرهمزمان (Async-Programming) مناسب نیست.
پیکربندی پکیج Flask
نصب پکیج Flask همانند فریم ورک های دیگر زبان برنامه نویسی پایتون از طریق Python Package Index میباشد. برای اینکار ابتدا یک دایرکتوری با نام flask_todo بسازید و سپس پروسه نصب را آغاز نمایید. علاوه بر این می توان با نصب flask-sqlalchemy ارتباط مستقیمی بین فریم ورک فلسک و دیتابیس SQL برقرار کرد.
دیتابیس
برای اینکه از قابلیت های فریم ورک Flask بهره مند شوید نیاز به ایجاد ارتباط با یک پایگاه داده دارید. فلسک به عنوان یک فریم ورک غیر متکی شناخته می شود، بدین معنی که هیچ راه تعاملی با دیتابیس درون آن تعبیه نشده است. اما با استفاده از پکیج flask-sqlalchemy قادر خواهید بود تا یک پایگاه داده SQL را به اپلیکیشن Flask متصل نمایید.

برای این کار باید URL دیتابیس را درون این پکیج قرار دهید. به عبارت دیگر فلسک برای پیکربندی خود نیاز دارد که URL دیتابیس را از طریق صفت SQLALCHEMY_DATABASE_URI درون اپلیکیشن قرار دهد.
شی یا Object در فریم ورک Flask
پس از برقراری ارتباط با یک دیتابیس باید اشیایی برای پرکردن آن تعریف کنیم. در فرآیند توسعه اپلیکیشن Model نشان دهنده Object های واقعی یا انتزاعی میباشد. برای مثال اگر یک اپلیکیشن خرید و فروش منزل را طراحی کردید با تعریف مدل و سبک منزل تمام رفتارها و صفت های مربوط به خودرو را کپسوله سازی کرده اید. در این حالت شما باید یک فهرست To-Do-List از Task ها تهیه نمایید، به گونه ای که هر Task مربوط به یک کاربر باشد. اما قبل از انجام این کار بهتر است برای هر Task و کاربر یک Object تعریف نمایید.

در فهرست To-Do-List کاربران چندین عملیات را دارا هستند و هر عملیات فقط مختص یک کاربر است، این رابطه به نام Many-to-One یا کلید بیگانه شناخته می شود. در حقیقت در این نوع از رابطه task ها به عنوان Many و کاربرانی که آن عملیات را دارا هستند One محسوب میشوند.
راه اندازی دیتابیس در فریم ورک Flask
پس از اینکه مدل ها و روابط بین آنها را تنظیم شد باید دیتابیس را راه اندازی کرد اما از آنجایی که فریم ورک Flask فاقد ابزار مدیریت پایگاه داده است، باید شما دست به کار شوید. در واقع احتیاج نیست کار پیچیده ای انجام دهید و فقط به ابزاری نظیر Flask-Migrate یا Flask-Alembic نیاز است که جداول مورد نیاز را شناسایی نمایید برای ساختن آنها کدهایی را در اختیار شما قرار میدهد.
نما و تنظیم URL
نمای یک اپلیکیشن عملکردی است که به محض فراخوانی یک Access Point خاص اجرا می شود، به عبارت دیگر این نقاط اتصال در شکل URL به وجود میآیند و دیتای موجود در اپلیکیشن را بازگردانده یا کنترل مینمایند. برای مثال Views به عنوان ساختاری منطقی ریکوئست های HTTP ارسالی از طرف یک کاربر را کنترل میکند و به او باز می گرداند.