معرفی فریم ورک Flask + مزایا و معایب آن
فریم ورک Flask یکی از محبوب ترین فریم ورک های زبان پایتون می باشد که در سال های اخیر بیشتر مورد توجه قرار گرفته است. به طور کلی فریم ورک کتابخانه ای حاوی کدهای برنامه نویسی است که در مسیر توسعه اپلیکیشن های مقیاس پذیر و پایدار به برنامه نویسان کمک می کند تا برای انجام عملیات معمول از کدهای پیش ساخته استفاده کند.
بنابراین استفاده از یک فریم ورک باعث کاهش هزینه و صرفه جویی در زمان می شود. فریم ورک های زیادی نظیر فِلَسک، Tornado، Django و پیرامید برای زبان پایتون در دسترس قرار دارد که در این مقاله یک از آنها به نام Flask را مورد بررسی قرار خواهیم داد.
فریم ورک Flask چیست؟
فلسک یک فریم ورک برای زبان پایتون (Python) است که ابزار، کتابخانه ها و تکنولوژی های مورد نیاز برای توسعه صفحات وب را در اختیار برنامه نویسان قرار می دهد. در حقیقت Flask یکی از بهترین میکرو فریم ورک های موجود تلقی می شود چرا که وابستگی کمتری به ابزار و کتابخانه های بیرونی دارد.
از آنجایی که این فریم ورک بسیار سبک به شمار می رود، باگ های امنیتی در آن به شدت کاهش یافته است ولی در عوض برنامه نویس باید برای رفع محدودیت های آن از پلاگین های مختلفی استفاده کند که یک نکته منفی برای فریم ورک Flask محسوب می شود.
مولفه های فریم ورک Flask
فریم ورک فلسک با دو کامپوننت اصلی ترکیب شده است :
- کتابخانه Werkzeug که به عنوان یک ابزار بسیار سودمند در زبان پایتون تعبیه شده است. این کتابخانه در واقع یک اپلیکیشن WSGI به شمار می رود که از طریق آن قادر خواهید بود برای ایجاد ریکوئست، Response و عملکردهای دیگر، آیتم های نرم افزاری توسعه دهید.
- موتور قالب ساز Jinja که برای اهداف برنامه نویسی زبان پایتون طراحی شده است و شباهت بسیار زیادی به قالب های فریم ورک Django دارد.
ویژگی های اصلی
- دارای سرورهای توسعه دهنده و عملکرد مطلوب در رفع باگ ها
- سیستم یکپارچه سازی برای اجرای آزمایش های واحد
- پشتیبانی از استاندارد WSGI زبان برنامه نویسی پایتون
- مبتنی بر استاندارد یونی کد (Unicode)
- مناسب برای موتور اجرای برنامه گوگل (Google App Engine)
- امکان دسترسی به افزونه های دیگر به منظور تقویت عملکرد
- امکان ساخت کوکی های با امنیت سطح بالا
به طور کلی یادگیری فریم ورک Flask به عنوان یک ابزار مقیاس پذیر بسیار ساده قلمداد می شود به گونه ای که هیچ محدودیتی برای معماری اپلیکیشن یا لایه های Data Abstraction در آن وجود نداشته و به همین دلیل انواع رویکردها و تکنیک های برنامه نویسی در آن مجاز است.
علاوه بر این شما قادر خواهید بود این فریم ورک را در اپلیکیشن های تعبیه شده مانند Raspberry Pi پیاده سازی کنید که این اپلیکیشن در دستگاه های مختلف نظیر موبایل، سیستم های دسکتاپ و تلویزیون های هوشمند قابلیت بارگذاری خواهد داشت.
پیکربندی فریم ورک Flask
نصب پکیج Flask همانند فریم ورک های دیگر زبان برنامه نویسی پایتون از طریق Python Package Index امکان پذیر است. برای اینکار ابتدا یک دایرکتوری با نام flask_todo بسازید و سپس پروسه نصب را آغاز کنید، علاوه بر این می توان با نصب flask-sqlalchemy ارتباط مستقیمی بین فریم ورک فلسک و دیتابیس SQL برقرار کرد.
دیتابیس
برای اینکه از قابلیت های فریم ورک Flask بهره مند شوید نیاز به ایجاد ارتباط با یک پایگاه داده خواهید داشت. فلسک به عنوان یک فریم ورک غیر متکی شناخته می شود، بدین معنی که هیچ راه تعاملی با دیتابیس درون آن تعبیه نشده است. اما با استفاده از پکیج flask-sqlalchemy قادر خواهید بود تا یک پایگاه داده SQL را به اپلیکیشن Flask متصل کنید؛ برای اینکار تنها لازم است که URL دیتابیس را درون این پکیج قرار دهید. به عبارت دیگر فلسک برای پیکربندی خود نیاز دارد که URL دیتابیس را از طریق صفت SQLALCHEMY_DATABASE_URI درون اپلیکیشن قرار دهد.
تعریف Object در فریم ورک Flask
پس از برقراری ارتباط با یک دیتابیس باید اشیایی برای پرکردن آن تعریف نماییم. در فرآیند توسعه اپلیکیشن Model نشان دهنده Object های واقعی یا انتزاعی است، برای مثال اگر یک اپلیکیشن خرید و فروش خودرو طراحی کرده اید، با تعریف مدل car تمام رفتارها و صفت های مربوط به خودرو را کپسوله سازی (Encapsulation) کرده اید. در این حالت شما باید یک فهرست To-Do-List از Task ها تهیه کنید؛ به گونه ای که هر Task مربوط به یک کاربر باشد. اما قبل از انجام این کار بهتر است برای هر Task و کاربر یک Object تعریف نمایید.
روابط مدل در فریم ورک Flask
شما به عنوان برنامه نویس شاید بخواهید روابط بین Object ها را نیز بیان کنید. در فهرست To-Do-List کاربران چندین عملیات را دارا هستند و هر عملیات فقط مختص یک کاربر است، این رابطه به نام Many-to-One یا کلید بیگانه شناخته می شود. در حقیقت در این نوع از رابطه task ها به عنوان Many و کاربرانی که آن عملیات را دارا هستند One محسوب می شوند.
راه اندازی دیتابیس
پس از اینکه مدل ها و روابط بین آنها را تنظیم کردید باید دیتابیس خود را نیز راه اندازی کنید اما از آنجایی که فریم ورک Flask فاقد ابزار مدیریت پایگاه داده است، باید خودتان دست به کار شوید. در حقیقت نیاز نیست کار پیچیده ای انجام دهید و فقط به ابزاری نظیر Flask-Migrate یا Flask-Alembic احتیاج دارید که جداول مورد نیاز را شناسایی کرده و کدهایی را برای ساختن آنها در اختیار شما قرار دهد.
نما و تنظیم URL
آخرین مرحله در راه اندازی اپلیکیشن View و روت است. نمای یک اپلیکیشن عملکردی است که به محض فراخوانی یک Access Point خاص اجرا می شود؛ به عبارت دیگر این نقاط اتصال در شکل URL پدیدار می شوند و دیتای موجود در اپلیکیشن را بازگردانده یا کنترل می کنند. برای مثال Views به عنوان ساختاری منطقی ریکوئست های HTTP ارسالی از طرف یک کاربر را کنترل کرده و به او باز می گرداند.
مزایای فریم ورک Flask
- مینیمالیست بدون افت قدرت
فریم ورک فلسک با فریم ورک های وانیلا HTML و Bootstrap به راحتی لینک می شود و با تنها چند خط کدنویسی پایتون امکان بارگذاری آن در پروژه های محاسباتی در اختیار برنامه نویسان قرار می گیرد. علاوه بر این چون که این فریم ورک ماژولار است، اقلامی که برای توسعه یک اپلیکیشن مورد نیاز نیست را می توان به راحتی حذف کرد.
- منابع آنلاین بسیار
فریم ورک Flask یکی از محبوب ترین فریم ورک های زبان برنامه نویسی پایتون محسوب می شود به همین دلیل کتابخانه ها، فایل های راهنما و آموزشی بسیاری برای آن در دسترس توسعه دهندگان قرار دارد. برای مثال نسخه ای از کتابخانه های مهم زبان پایتون نظیر SQLAlchemy برای فریم ورک Flask نیز منتشر شده است که به راحتی با یکدیگر ادغام می شوند.
- نمونه سازی بسیار آسان
اگرچه فریم ورک Flask بسیار مینیمالیستی است اما بلافاصله پس از نصب، تمامی ابزارهای لازم برای نمونه سازی اولیه اپلیکیشن را در اختیار توسعه دهندگان قرار می دهد. علاوه بر این توسعه یک اپلیکیشن ساده از طریق این فرم ورک بسیار آسان است چون تمام مولفه های آن در یک پکیج به نام flask قرار گرفته است.
- انعطاف پذیری بالا
فریم ورک Flask قابلیت انعطاف پذیری بالایی برای توسعه دهندگان اپلیکیشن به ارمغان می آورد. برای مثال می توان از تکنولوژی ORM در این فریم ورک صرف نظر کرد و در عوض امکان استفاده از تکنولوژی های متنوع برای قالب سازی و مدیریت Taskها در اختیار برنامه نویسان قرار دارد.
- مستندسازی مطلوب
مستندسازی رسمی این فریم ورک به نحو کامل در دسترس قرار دارد و همه مباحث به صورت دقیق و شفاف توضیح داده شده است. علاوه بر این برای رفع مشکلات برنامه نویسان مباحث آموزشی نیز تدارک دیده شده است.
معایب فریم ورک Flask
- طراحی فریم ورک فلسک برای برنامه نویسی غیرهمزمان (Async-Programming) مناسب نیست.
- اگرچه ساخت API از طریق آن امکان پذیر است اما ذاتاً به صورت HTML محور طراحی گردیده است.
- از آنجایی که شیوه کار فریم ورک Flask بر پایه متغیرهای ThreadLocal و Global بنا شده است، نمی توان از کدهای Reusable یا تمیز استفاده کرد.
- مدیریت پروژه های بزرگ از طریق فریم ورک Flask کمی دشوار است. البته ابزار Blueprints برای اینکار مطلوب به نظر می رسد که آن هم برای برنامه نویسان تازه وارد سخت و پیچیده محسوب می شود. علاوه بر این چون این فریم ورک فاقد کتابخانه پیش فرض است، انتخاب بین گزینه های موجود برای افرادی که سابقه کار با این فریم ورک را ندارند بسیار دشوار است.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.