فلسک یک چارچوب برنامه وب است که به زبان پایتون نوشته شده است. فلسک بر اساس ابزار Werkzeg WSGI و موتور قالب Jinja2 نوشه شده است که هر دو از پروژههای Pocco هستند.
در واقع فلسک (Flask) یک فریمورک وب ساده و سبک برای زبان پایتون است که به طور خاص برای ساخت اپلیکیشنهای وب کوچک تا متوسط استفاده میشود. فلسک جزء فریمورکهای میکرو محسوب میشود؛ به این معنی که به صورت پیشفرض ابزارهای پیشرفته و کامپوننتهای اضافی ندارد و تنها به اجزای اصلی برای ساخت یک سرور وب خلاصه شده است. این ویژگی به توسعهدهندگان آزادی عمل بیشتری میدهد تا اجزای مورد نیاز را خودشان انتخاب و اضافه کنند.
از فلسک اغلب به عنوان میکرو فریمورک یاد میشود. فلسک با این هدف طراحی شده است تا هسته اصلی برنامه را ساده و مقیاس پذیر نگه دارد.
همچنین به جای یک لایه انتزاعی برای پشتیبانی پایگاه داده، فلسک از افزونههایی برای افزودن چنین قابلیتهایی به برنامه پشتیبانی میکند.
Flask (فلسک) اولین بار توسط Armin Ronacher از Pocoo (یک گروه بین المللی از علاقه مندان به پایتون که در سال ۲۰۰۴ تشکیل شد) ارائه شد. به گفته روناخر، این ایده در ابتدا یک شوخی بوده که بعدها آنقدر محبوب شد که به یک برنامه جدی تبدیل شد.
پس از آن که روناخر و جورج براندل یک سیستم تابلو اعلانات نوشته شده در پایتون ایجاد کردند، پروژههای پوکو Werkzeug و Jinja توسعه یافتند.
در آوریل ۲۰۱۶، تیم Pocoo منحل شد و توسعه فلسک و کتابخانههای مربوطه به پروژه تازه تاسیس پالت منتقل شد.
امروزه فلسک در بین علاقه مندان به پایتون بسیار محبوب شده است. از اکتبر ۲۰۲۰، دارای دومین ستاره در GitHub در میان چارچوبهای توسعه وب پایتون است. فلسک در نظرسنجی توسعه دهندگان پایتون ۲۰۱۸، تنها با تفاوت اندکی پس از Django (جنگو)، محبوب ترین چارچوب وب شناخته شد.
Flask کتابخانه ای کوچک یا به اصطلاح جمع و جور است. اما این کوچیک بودن را نباید با ضعیف بودن اشتباه بگیرید. Flask به حدی قدرتمند است که بسیاری از شرکتهای بزرگ به آن اعتماد کرده و از Flask در پروژههای خود استفاده میکنند. مثلا Uber که بزرگترین سرویس درخواست تاکسی اینترنتی است یا سامسونگ که یکی از بزرگترین تولیدکنندههای قطعات دیجیتال در دنیا است، Flask را به کار گرفته اند. در لیست زیر بعضی از معروفترین برندهایی که به Flask اعتماد کرده اند را مشاهده میکنید:
برای درک این موضوع که Flask چیست باید بگوییم که فلسک به طور کلی با دو کامپوننت Werkzeug (این کلمه آلمانی بوده و ممکن است تلفظ آن کمی دشوار باشد) و Jinja کار میکند. کارهایی مثل مسیریابی، دیباگ کردن، ارتباط با وب سرور و غیره توسط Werkzeug انجام میشود. Jinja هم یک template Engine است که دادههای مختلف را در قالب مورد نظر شما نمایش میدهد. هر دو کامپوننت توسط سازنده فلسک یعنی آقای Ronacher ساخته شده و تحت لایسنس BSD منتشر شده اند.
در حقیقت فریم ورکها مجموعه ای از کدهای آماده هستند که کار را برای برنامه نویس آسان میکنند. مثلا طراحی یک وب سرور به زبان پایتون که بتواند میزبان سایتها باشد بدون فریم ورک کار دشوار و زمان بری است. اما با فریمورکی مثل Flask میتوانید این کار را با کمتر از 120 خط کد انجام داده و یک وب سرور ساده بنویسید. در واقع فلسک به شما کمک میکند بدون درگیر شدن با مسائل پیچیده سطح پایین، تمرکز خود را روی توسعه سرویس خود بگذارید.
درحقیقت دلیل استفاده از فریم ورک فلسک به مانند دیگری فریم ورک ها به نحوه استفاده شما از آن بر میگردد. منظور از نحوه استفاده این است که پایتون دارای تعداد زیادی از فریم ورک های مختلف برای کار های مختلفی که قرار است با آن انجام دهید دارد. به همین دلیل استفاده از یک فریم ورک به طور دقیق به نوع پروژه و کار شما برمیگردد. اما همانطور که در بالا گفته شد به عنوان مثال برای ساخت یک وب سرور با ترجیح flask به دیگر فریم ورک ها بسیار به خود و زمان پروژه کمک می کنید.
۱. یادگیری آسان
یکی از دلایلی که محبوبیت فلسک این است که از آن تنها به عنوان یک چارچوب ساده استفاده نمیشود. هر توسعه دهنده اعم از مبتدی یا با تجربه میتواند آن را به سرعت بیاموزد و از آن برای توسعه برنامههای وب استفاده کند.
۲. کد منبع
کد منبع مستند برای مبتدیانی که میخواهند پایتون را یاد بگیرند مفید است. این کدها و آموزشها، توسعه دهندگان را با جزئیات پیچیده درگیر نمیکند. همچنین به توسعه دهندگان جدید یا کسانی که تجربه کمتری در پایتون دارند توصیه میشود که فلسک را بیاموزند و قبل از انتقال به چارچوبهای کامل مانند Django، قطعات کوچکی از برنامههای وب را توسط آنها ایجاد کنند.
۳. تسهیل آزمایش
باید اضافه کنیم که فلسک چارچوب ایده آلی است که برای آزمایش برنامههای وب استفاده میشود. در مقایسه با ساختار یکپارچه چارچوبی مانند جنگو، فلسک با فناوریهای نوظهور جدید در بازار بسیار سازگارتر است. در مواقعی که توسعه دهندگان محصولات خود را به طور مداوم بهبود میبخشند، فلسک میتواند اجرای سریعتر را تسهیل کند. بنابراین، اگر توسعه دهنده بخواهد ویژگیهای بیشتری را برای غنی سازی محصول اضافه کند، میتواند از فلسک برای یکپارچه سازی سریع استفاده کند.
۴. کنترل بیشتر روی کدها و برنامههای افزودنی
کنترل بیشتر روی کدها و برنامههای افزودنی – flask چیست
با توجه به اینکه فلسک پایگاه کد کوچکی است، توسعه دهندگان کنترل بیشتری بر روی کدهای خود دارند. به طور مشابه، توسعه دهندگان فلسک را دوست دارند زیرا به آنها اجازه میدهد تا اجزای مورد نظر خود را انتخاب کنند. فلسک تمام قدرت را به توسعه دهندگان میدهد تا هنگام انتخاب اجزای برنامه وب خود، تصمیمات بیشتری بگیرند. آنها همچنین کنترل کاملی بر برنامههای افزودنی خود دارند. به عنوان مثال، اگر یک برنامه وب نیازی به دسترسی به پایگاه داده یا تأیید فرم ندارد، توسعه دهنده میتواند آن برنامههای افزودنی را حذف کرده و در عوض از برنامههای مرتبط با برنامه خود استفاده کند.
۵. طرح پروژه انعطاف پذیر
انعطاف پذیری ویژگی اصلی فلسک است. هنگامیکه توسعه دهندگان مجبور به همکاری با سیستمهای گردش کار و سیستمهای مختلف هستند، استفاده از فلسک مفید است. Flask یک چارچوب وب قابل توسعه دارد. این میکرو فریم ورک به توسعه دهندگان انعطاف پذیری بیشتری میدهد تا برنامههای خود را به شیوه ای که میخواهند سفارشی کنند. فلسک به آنها این امکان را میدهد تا مسائلی را که ممکن است به دلیل سختی سایر چارچوبها ایجاد شود، کاهش دهند. در عوض، توسعه دهندگان میتوانند از هر مولفه ای که میخواهند برای ساخت برنامههای وب خود استفاده کنند.
نصب پکیج Flask همانند فریم ورک های دیگر زبان برنامه نویسی پایتون از طریق Python Package Index میباشد. برای اینکار ابتدا یک دایرکتوری با نام flask_todo بسازید و سپس پروسه نصب را آغاز نمایید. علاوه بر این می توان با نصب flask-sqlalchemy ارتباط مستقیمی بین فریم ورک فلسک و دیتابیس SQL برقرار کرد.
برای اینکه از قابلیت های فریم ورک Flask بهره مند شوید نیاز به ایجاد ارتباط با یک پایگاه داده دارید. فلسک به عنوان یک فریم ورک غیر متکی شناخته می شود، بدین معنی که هیچ راه تعاملی با دیتابیس درون آن تعبیه نشده است. اما با استفاده از پکیج flask-sqlalchemy قادر خواهید بود تا یک پایگاه داده SQL را به اپلیکیشن Flask متصل نمایید.
پس از برقراری ارتباط با یک دیتابیس باید اشیایی برای پرکردن آن تعریف کنیم. در فرآیند توسعه اپلیکیشن Model نشان دهنده Object های واقعی یا انتزاعی میباشد. برای مثال اگر یک اپلیکیشن خرید و فروش منزل را طراحی کردید با تعریف مدل و سبک منزل تمام رفتارها و صفت های مربوط به خودرو را کپسوله سازی کرده اید. در این حالت شما باید یک فهرست To-Do-List از Task ها تهیه نمایید، به گونه ای که هر Task مربوط به یک کاربر باشد. اما قبل از انجام این کار بهتر است برای هر Task و کاربر یک Object تعریف نمایید.
پس از اینکه مدل ها و روابط بین آنها را تنظیم شد باید دیتابیس را راه اندازی کرد اما از آنجایی که فریم ورک Flask فاقد ابزار مدیریت پایگاه داده است، باید شما دست به کار شوید. در واقع احتیاج نیست کار پیچیده ای انجام دهید و فقط به ابزاری نظیر Flask-Migrate یا Flask-Alembic نیاز است که جداول مورد نیاز را شناسایی نمایید برای ساختن آنها کدهایی را در اختیار شما قرار میدهد.
توصیه میکنیم از فلسک در موارد زیر استفاده کنید:
حرف آخر:
فلسک یک چارچوب پایتون منبع باز و رایگان میکرو مبتنی بر وب است که برای کمک به برنامه نویسان برای ایجاد برنامههای وب مقیاس پذیر، ایمن و با قابلیت نگهداری ساده طراحی شده است. اگر مبتدی هستید، شروع آن بسیار آسان و ساده است. همچنین فلسک ممکن است مزایای بیشتری نسبت به سایر چارچوبها داشته باشد. با این حال، موارد منفی آن نیز وجود دارد. به عنوان مثال، فلسک در مقایسه با فریمورکهایی مانند جنگو در برابر خطرات امنیتی آسیب پذیرتر است. همچنین، فلسک ممکن است چارچوب مناسبی برای توسعه برنامههای پیچیده با سرعت بالا نباشد. بنابراین، مهم است که چارچوب را با دقت انتخاب کنید.