فریمورک فلسک (Flask) چیست؟
همه ما کاربردهای زبان برنامه نویسی پایتون را میدانیم و به این موضوع که این زبان در تقریبا همه شاخههای برنامه نویسی مورداستفاده قرار میگیرد، واقف هستیم. در توسعه وب، از پایتون برای توسعه سمت سرور با استفاده از فریمورکهای جنگو (Django) و فلسک (Flask) استفاده زیادی میشود. در گذشته فریمورک جنگو را معرفی کردیم و کاربردهای مختلف آن را مورد بررسی قرار دادیم؛ اما امروز قصد داریم جدیترین رقیب آن یعنی فریمورک Flask را معرفی کرده و به سوالاتی نظیر:
- فلسک چیست؟
- چه کاربردهایی دارد؟
- چرا باید از آن استفاده کنیم؟
- و آیا با وجود جنگو، فلسک بازار کار مناسبی دارد؟
پاسخ دهیم. ادامه این مطلب از وبلاگ سبزلرن را از دست ندهید!
فریمورک فلسک چیست؟
فریمورک فلسک، یک میکرو وب فریمورک سبک، کوچک و قابل شخصیسازی برای توسعه برنامههای مبتنی بر وب است که با استفاده از زبان برنامه نویسی پایتون توسعه یافته است. این فریمورک با هدف توسعه سریعتر و کارآمدتر وب با استفاده از پایتون به وجود آمد و در حال حاضر، در رتبه دومین فریمورک محبوب پایتون برای توسعه وب قرار دارد.
بزرگترین مزیت فریمورک فلسک پایتون در مقایسه با رقبا، سبک بودن آن است. زمانی که فلسک را نصب میکنید، تنها امکان استفاده از امکانات پایهای و سادهای را دارید که در پروژههای شخصی و کوچک مورداستفاده قرار میگیرند. جالب است بدانید در این حالت، حتی امکان کار کردن با پایگاههای داده را هم ندارید! در عوض، تعداد بسیار زیادی ماژول و افزونه و کتابخانه برای کار با این افزونه به وجود آمده که در صورت نیاز به هر ویژگی، میتوانید آن را به سادگی در فلسک نصب کرده و مورداستفاده قرار دهید.
منظور از میکرو وب فریمورک (Micro Web Framework) چیست؟
اصطلاح میکرو وب فریمورک، از ترکیب وب فریمورک (Web Framework) و میکرو فریمورک (Micro Framework) بدست آمده است.
وب فریمورک یا فریمورک تحت وب، در واقع چارچوب توسعه نرم افزاری است که از کتابخانهها، ماژولها و ابزارهای مختلف تشکیل شده که در توسعه برنامههای مبتنی بر وب، به ما کمک میکنند. البته وجود ابزارها و کتابخانهها ضروری نیست و یک فریمورک تحت وب، ممکن است فاقد هرگونه کتابخانه و ابزار باشد.
از سوی دیگر، میکرو فریمورک دقیقا به فریمورکهایی گفته میشود که فاقد این ابزارها و امکانات اضافی هستند. معمولا این چارچوبها برای استفاده در پروژههای کوچک و خاصی مورداستفاده قرار میگیرند و کاربرد کمتری نیز دارند.
با توجه به این موارد، چیزی که ما تحت عنوان «میکرو وب فریمورک Flask» میشناسیم، در واقع یک فریمورک کوچک، سبک و فاقد امکانات اضافی (به صورت پیشفرض) است که در توسعه سمت سرور مورداستفاده قرار میگیرد.
تاریخچه فریمورک فلسک پایتون
ایده اولیه توسعه فریمورکی نظیر Flask، به آوریل سال 2004 برمیگردد؛ زمانی که شخصی به نام Armin Ronacher که عضو انجمن Poocoo (یک گروه بین المللی از دوستداران زبان پایتون) بود، ایده توسعه یک فریمورک تحت وب با استفاده از پایتون را به عنوان یک شوخی منتشر کرد. برخلاف تصور، افراد زیادی از این ایده حمایت کردند. این موضوع باعث شد روناچر با همکاری یک توسعه دهنده دیگر به نام جورج برندی (Georg Brandi) دست به توسعه فریمورکی بزنند که امروزه با نام فلسک میشناسیم.
فلسک توسط انجمن اینترنتی Poocoo توسعه و معرفی شد و تا سال 2010، به صورت متنباز در اختیار کاربران قرار داشت. از سال 2010 فریمورک Flask تحت لایسنس BSD منتشر شد و توانست نظرات زیادی را به سمت خود جلب کند. تا سال 2016، گروه Poocoo مسئولیت توسعه و پشتیبانی از این فریمورک را برعهده داشتند؛ اما با انحلال این گروه، مسئولیت توسعه فلسک به تیم Pallets Project سپرده شد که تا امروز، این وظیفه را به بهترین شکل انجام میدهد.
پیشنهاد دوره: اموزش پایتون
دلایل استفاده از Flask چیست؟
دلایل خاصی وجود دارد که توسعه دهندگان از یک ابزار یا فریمورک خاص استفاده کنند. این دلیل ممکن است رایگان بودن یا متن باز بودن یک فریمورک باشد یا زنجیرهای از دلایل مختلف که باعث میشود توسعه دهندگان، استفاده از یک فریمورک را ترجیح دهند. در ادامه، خواهیم گفت مهمترین دلایل استفاده از فلسک چیست و چرا باید از این فریمورک استفاده کنیم؟
اگر زمان کافی برای مظالعه متن را ندارید، تصویر زیر خلاصهای از آن را نشان میدهد.
سادگی و یادگیری آسان
اصلیترین دلیلی که افراد مختلف را به یادگیری فلسک ترغیب میکند، سادگی و فرآیند آسان یادگیری آن است. همانطور که اشاره کردیم، فریمورک فلسک تنها امکانات پایهای و ضروری که در توسعه وب مورداستفاده قرار میگیرند را درون خود جای داده و بسیار سبک و سریع است. به این ترتیب، افراد مبتدی میتوانند با زحمت کمتر و سرعت بالاتری این فریمورک را یاد بگیرند. افراد حرفهای نیز میتوانند کنترل بیشتری روی پروژههای خود داشته باشند و تنها در صورت نیاز، امکانات و ابزارهای دیگر را به صورت کتابخانه یا ماژول، در پروژه خود اضافه کنند.
این سادگی و سبک بودن باعث میشود توسعه دهندگان به جای صرف زمان برای یادگیری پیچیدگیهای مختلف یک فریمورک، به موارد مهمتر پروژه توجه کنند و بتوانند آنها را با عملکرد بهتری توسعه و منتشر کنند.
انعطاف پذیری بالا
این مورد نیز تا حد زیادی به همان موضوع قبلی وابسته است. در فریمورکهای دیگر، توسعه دهندگان طیف قابل توجهی از ابزارها و امکاناتی را در اختیار دارند که ممکن است تعداد زیادی از آنها، در یک پروژه مورداستفاده قرار نگیرند؛ اما همچنان جزئی از فریمورک هستند. از طرفی، ممکن است یک فریمورک، توسعه دهنده را مجبور به استفاده از یک معماری یا طراحی خاص کند.
فریمورک فلسک این امکان را به توسعه دهندگان میدهد که تنها در صورت نیاز، امکانات و بخشهای دیگری را به فریمورک اضافه کنند و آنها را در چارچوبهای سفت و سخت نگه نمیدارد. در نتیجه، برنامه نویس میتواند معماری و الگوی توسعه پروژه را به خوبی و بدون سختگیری از جانب فریمورک مورداستفاده، طراحی و پیادهسازی کند.
کارایی و سرعت
در بحث سرعت هم فریمورک فلسک پایتون حرفهای زیادی برای گفتن دارد که اکثر آنها، از همان سادگی و کوچک بودن Flask سرچشمه میگیرند. زمانی که یک فریمورک فاقد امکانات اضافی باشد، پروژه توسعه یافته با آن حجم کمتری خواهد داشت و به دلیل عدم وجود درخواستها و فراخوانیهای متعدد از دیگر ماژولها یا ابزارها، سرعت اجرای آن به مراتب بالاتر خواهد بود.
جامعه بزرگ و فعال
تعداد کاربرانی که از یک فریمورک استفاده میکنند، تاثیر زیادی روی بهبود مشکلات و پایداری آن دارد؛ زیرا علاوه بر اینکه باگها و ایرادات احتمالی بعد از هر آپدیت به سرعت شناسایی و برطرف میشوند، ابزارها و کتابخانههای زیادی نیز برای استفاده برای فریمورک موردنظر ساخته میشوند. میدانید نکته جالب درباره فلسک چیست؟ اینکه خود فریمورک Flask توسط جمعی از جامعه برنامه نویسان پایتون طراحی و ساخته شد و محصولی برآمده از تواناییهای جمع زیادی از برنامه نویسان پایتون است.
مناسب برای پروژههای کوچک و متوسط
سبک بودن فریمورک فلسک به این معنی نیست که نمیتوان انتظار زیادی از آن داشت. این چارچوب وب قدرتمند برای توسعه پروژههای کوچک و فردی انتخاب فوق العادهای است؛ زیرا میتوانید تنها امکاناتی که نیاز دارید را در برنامه مورداستفاده قرار دهید. در ضمن، خبری از پیچیدگیهای مختلف و زجرآور که فرآیند توسعه را کند کنند، نیست.
اگر پروژه مدنظر شما در زمره پروژههای متوسط و نسبتا بزرگ قرار میگیرد، باز هم میتوانید از پتانسیل فوق العاده فریمورک Flask پایتون استفاده کنید. میتوانید از بین هزاران کتابخانه و ماژول ساخته شده برای این فریمورک، انتخابهای مدنظرتان را به پروژه اضافه کرده و از آنها استفاده کنید. البته فراموش نکنید استفاده از فلسک برای توسعه پروژههای بزرگ، به اندازه توسعه برنامههای کوچک آسان و بیدردسر نیست و ممکن است شما را با مشکلاتی مواجه کند که در بخش مزایا و معایب فریمورک فلسک، به آن اشاره میکنیم.
مقیاسپذیری قابل توجه
میدانید دلیل استفاده بالای استارتاپها و شرکتهای کوچک و متوسط از فلسک چیست؟ مقیاس پذیری بالا!
مقیاس پذیری به معنی امکان گسترش و توسعه بیشتر برای میزبانی ترافیک بیشتری از کاربران است. از آنجایی که کدهای فریمورک فلسک به صورت ماژولار و ساده هستند، میتوان به سادگی بخشهای مختلف آنها را توسعه داد؛ به طوری که نیازی به ایجاد تغییرات گسترده و معماری مجدد نرم افزار موردنظر نباشد. این ویژگی برای استارتاپها و شرکتهایی که قصد دارند طی زمان، برنامههای تحت وب خود را گسترش دهند، بسیار عالی است.
کنترل کامل بر روی کد
این مورد، خوراک توسعه دهندگان حرفهای است و آنها، اهمیت کنترل داشتن روی کدای برنامه را به خوبی درک میکنند. بسیاری از فریمورکهای مشابه Flask دارای ساختار مشخصی هستند که برنامه نویس را محدود به همان ساختار میکنند. برای مثال، برنامه نویس مجبور به استفاده از یک معماری خاص یا طی کردن فرآیند خاصی برای توسعه برنامه است که کدهایی غیرقابل کنترل را وارد پروژه میکنند. ویژگی میکرو فریمورک بودن Flask در اینجا بسیار به چشم میآید؛ زیرا خبری از محدودیت نیست و توسعه دهندگان میتوانند ساختار برنامه را خودشان طراحی کنند و از هرکدام از کتابخانهها و ابزارهای سازگار با فلسک، در پروژه استفاده کنند.
جامعهی پایتون محور
اینکه یک فریمورک علاوه بر جوامع برنامه نویسی مختص خودش، در جامعه زبان برنامه نویسی موردنظرش نیز دارای محبوبیت باشد را در کمتر فریمورکی دیدهایم. فلسک نه تنها تعداد کاربران زیادی در سرتاسر جهان دارد، بلکه کل جامعه کاربری پایتون از آن حمایت میکنند. ثمره این حمایت، سازگاری سریع این فریمورک با هر کتابخانه و فریمورک دیگری است که توسط این جامعه ساخته میشود و به بروز بودن و پشتیبانی از آخرین استانداردها کمک میکند.
پیشنهاد دوره: اموزش جنگو
کاربردهای فریمورک Flask چیست؟
تا اینجا گفتیم که فلسک یک میکرو وب فریمورک سبک و سریع مبتنی بر زبان برنامه نویسی پایتون است که برای توسعه برنامههای تحت وب مورداستفاده قرار میگیرد. غیر از این، فریمورک فلسک برای چندین کار دیگر نیز مورداستفاده قرار گرفته و خروجی خوبی از خود به نمایش گذاشته است. تصویر زیر، مهمترین کاربردهای فریمورک Flask را نشان میدهد.
ساخت برنامه Hello World با استفاده از Flask
بیایید قدم به قدم جلو برویم و برنامه معروف Hello World را در فریمورک فلسک بنویسیم. قبل از شروع، این نکته را به یاد داشته باشید که برای یادگیری فریمورک Flask پایتون، بهتر است تسلط متوسطی به این زبان برنامه نویسی داشته باشید. در غیر این صورت، ممکن است کدهای این برنامه، کمی گیج کننده و نامفهوم باشند.
در قدم اول، باید زبان برنامه نویسی پایتون روی کامپیوتر شما نصب باشد. برای اطمینان از این کار، میتوانید با فشار دادن دکمههای Windows+R و تایپ کردن عبارت CMD در پنجره باز شده، وارد ترمینال ویندوز شوید. در سیستم عامل مک نیز میتوانید این کار را با فشار دادن دکمههای CMD + Space و تایپ کردن Terminal در کادر باز شده انجام دهید.
اکنون دستور زیر را برای اطلاع از نصب بودن یا نبودن پایتون، در ترمینال وارد کرده و Enter کنید.
python --version
در سیستم عامل من، پایتون نسخه 3.12.0 نصب شده؛ در نتیجه خروجی زیر را دریافت میکنم:
python 3.12.0
در صورتی که خروجی متفاوتی دریافت کردید که نسخه پایتون در آن مشخص نشده بود، نیاز است این زبان برنامه نویسی را نصب کنید. برای این کار، میتوانید به راهنمای نصب پایتون مراجعه کنید.
بعد از نصب پایتون، نیاز است فریمورک فلسک را نصب کنید. برای این کار:
- دستور زیر را در ترمینال وارد کنید تا این فریمورک با استفاده از دستور pip نصب شود.
pip install Flask
- حالا وارد محیط کدنویسی موردنظرتان شده و یک فایل با پسوند .py برای کدهای پایتون بسازید. همچنین میتوانید یک فایل .txt ایجاد کرده و پسوند آن را به .py تغییر دهید.
- در ادامه، تکه کد زیر را درون فایل ایجاد شده قرار دهید.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
با استفاده از این کد، برنامه Hello World ایجاد میشود و خروجی زیر را ارائه میدهد.
Hello, World!
بیایید این کد را به صورت خط به خط تفسیر کنیم.
- خط اول، کلاس Flask را از ماژول flask وارد میکند.
- خط 2 یک نمونه (instance) از کلاس Flask ایجاد میکند که نام آن را app قرار داده و مقدار Flask(__name__) را درون آن قرار میدهیم. با این کار، یک متغیر با نام app طراحی شده و در ادامه با قرار دادن مقدار __name__ به مفسر میگوییم در حال استفاده از ماژول اصلی بوده و باید از فایلهای استاتیک به صورت پیشفرض استفاده کند.
- در خط 3 این کد را آدرسدهی میکنیم و آن را در ریشه (/) قرار میدهیم. با این کار، زمانی که شخصی به آدرس ریشه (دامین بدون ساب فولدر) وارد شود، تابعی که در ادامه تعریف شده فراخوانی شود.
- خط 4 و 5 به ترتیب به تعریف تابع و مقداردهی آن اختصاص یافته است. این تابع با نام hello_world مقدار Hello, World! را بعد از اجرا برمیگرداند.
- در خط 6 یک شرط قرار گرفته که بررسی میکند آیا فایل پایتون فعلی به صورت مستقیم اجرا شده یا به عنوان یک ماژول در جای دیگری فراخوانی شده است؟ در صورت برقرار بودن شرط، خط آخر اجرا میشود.
- خط 7 دستور run() را اجرا میکند که با راه اندازی وب سرور فریمورک فلسک، به شما اجازه میدهد برنامه را در مرورگر باز کنید. این کد به طور پیشفرض روی آدرس http://localhost:5000/ اجرا خواهد شد مگر اینکه آدرس یا پورت دیگری مشخص کرده باشید که در این کد، این کار انجام نشده است.
پیشنهاد مطالعه: بهترین مفسر های پایتون
بازار کار فلسک در ایران و جهان
اگر بخواهیم روراست باشیم، فریمورک فلسک در ایران به اندازه جنگو شناخته شده نیست و شرکتهای کمی از آن استفاده میکنند. به همین دلیل، ممکن است برای پیدا کردن یک موقعیت شغلی مناسب به عنوان توسعه دهنده Flask، به مشکل بخورید. خوشبختانه، تعداد پایین موقعیتهای شغلی جلوی درآمد این فریمورک را نگرفته و توسعه دهندگان ایرانی این فریمورک، درآمدهای قابل قبولی را کسب میکنند. به عنوان مثال، یک توسعه دهنده جونیور مسلط به فلسک حداقل 7 میلیون تومان در ماه درآمد دارد. این عدد برای توسعه دهندگان سنیور، بیش از 45 میلیون تومان در اواخر شهریور 1403 است.
اما در بازارهای جهانی، قضیه اندکی متفاوت است و این فریمورک توانسته جای خود را به عنوان یک فریمورک آیندهدار در جهان باز کند. تصویر زیر، خلاصهای از میانگین درآمدهای توسعه دهندگان Flask در کشورهای مطرح در زمینه کامپیوتر است.
فلسک انتخاب خوبی برای یادگیری است؛ اما…
در این مقاله سعی شد به سوالات متداولی مثل فلسک چیست؟ چه کاربردهایی دارد و دلایلی که باعث میشود یادگیری فلسک را به عنوان یک گزینه مناسب درنظر بگیرید، پاسخ دهیم. در انتها، چند نکته وجود دارد که بهتر است قبل از یادگیری فلسک بدانید:
- محبوبیت فلسک به مقدار زیادی پایینتر از فریمورک جنگو است؛ اما همچنان طرفداران پروپاقرص خود را دارد.
- این فریمورک فوق العاده سبک و کم حجم است؛ و برای این سبک بودن، قید قرار دادن بسیاری از ویژگیها به صورت پیشفرض را زده! البته با استفاده از کتابخانهها و ابزارهای توسعه یافته برای این فریمورک، میتوان همه امکانات موردنیاز را به آن اضافه کرد.
- شروع کار با فریمورک فلسک بسیار راحت است، اما مفاهیم پیشرفتهتر آن نیاز به سوزاندن فسفر زیادی در مغز نیاز دارد!
- استفاده از این فریمورک برای توسعه پروژههای بزرگ از صفر تا صد مناسب نیست؛ اما میتواند بخشی از یک پروژه بسیار بزرگ را هندل کند.
در نهایت، اگر مشکلی با این موارد ندارید، شما آماده یادگیری فریمورک Flask پایتون هستید. البته فراموش نکنید پیشنیاز اصلی شروع این مسیر، تسلط به زبان برنامه نویسی پایتون است!
نظری برای این مقاله ثبت نشده است