بعنوان یک توسعه دهنده ی وب احتمالا میدانید که ابزارهای زیادی برای توسعه ی وب سایت با زبان برنامه نویسی پایتون وجود دارد. بعضی وقت ها ممکن است این مسئله که با کدام کار کنید یا کدام را شروع کنید به یادگیری ، کمی گیج کننده است. اما برای توسعه ی وب سایت با پایتون دو فریمورک بسیار محبوب وجود دارد که نام آنها فلسک ( Flask ) و جنگو ( Django ) است.
همانند همه ی زبان های برنامه نویسی دیگر ، زبان برنامه نویسی پایتون نیز از ابزارها یا پلتفرم های کمکی به اسم فریمورک ها بهره میبرد. در واقع فریمورک ها اسکلت از پیش ساخته شده ای برای تولید وب سایت ها هستند و درون خود بیشتر کدهایی که توسعه دهندگان بصورت تکراری مینویسند را دارند و در واقع از اختراع مجدد چرخ جلوگیری میکنند.
استفاده از فریمورک از تسک هایی که یک توسعه دهنده باید زمان بسیاری را صرف آن بکند میکاهد و بعبارتی دیگر در زمان توسعه دهنده صرفه جویی میشود.
تسک هایی مانند :
Flask در واقع یک میکروفریمورک WSGI (Web Server Gateway Interface) است . میتوان گفت که رسالت این میکروفریم ورک این است که به شما کمک کند که سریعتر و آسان تر برنامه نویسی کنید . همچنین می توانید با Flask برنامه های پیچیده و سنگین توسعه بدهید .
Flask در ابتدا بهعنوان اصلاحی برای Werkzeug و Jinja آمد اما کم کم جای خودش را در دل برنامه نویسان باز کرد و محبوبیتی چشم گیر به عنوان یکی از فریم فرک های پایتون به دست آورد .
عملکردهای زیر درون این فریمورک وجود دارد :
باید بدانید که Django یک فریم ورک فول استک ومبتنی بر زبان پایتون می باشد . با وجود Django پروژه به سرعت با طراحی بهینه و عملگرا توسعه پیدا میکند . Django رایگان و متن باز است برای همین توسط توسعه دهندگانی ساخته شده که بسیار با تجربه هستند و بسیاری از مشکلات را در روند توسعه آن بررسی و رفع کرده اند .
شما میتوانید بدون اینکه دوباره چرخ را درست کنید برای پیش بردن پروژه برنامه نویسی خود به Django تکیه کنید .
شاید نقطه قوت کاربران این زبان را باید راه اندازی هاست جنگو دانست. چون از دردسر های مربوط به سرور مجازی راحت شدند.
حالا فکر کنید که برنامه ای که نوشتید به بانک اطلاعاتی یا دیتابیس های SQLite، PostgreSQL، MySQL یا Oracle نیاز دارد . در این شرایط مناسبترین فریم ورک Django است . اما اگر برنامه شما با دیتابیس NoSQL نوشته شود یا حتی بدون نیاز به دیتابیس می باشید Flask می تواند انتخاب بهتری باشد .
Flask برای پروژه های کوچکتر و پیچیده تر که دارای دامنه مشخص و طول عمر کوتاه تر هستند، مناسب است. از آنجا که Django یک ساختار خاص دارد، تمام پروژههای Django مشابه یکدیگر هستند. بنابراین، Django برای مدیریت پروژههای بزرگتر با تیمهای بزرگتر که دارای طول عمر بیشتر و پتانسیل رشد زیادی هستند، مناسبتر است.
Django از یک ساختار ثابت برای پروژهها استفاده میکند درحالی که Flask را میتوان بهصورت دلخواه استفاده کرد.
Django در ایجاد برنامههای وب با امکانات کامل و server-side templating بسیار خوب عمل میکند. اگر فقط یک وبسایت استاتیک یا وبسرویس RESTful میخواهید که از آن در SPA یا برنامه موبایلی استفاده کنید، میکروفریمورک Flask مناسب است. Django همراه با Django REST Framework نیز بهخوبی کار میکند.
DRF (Django REST Framework) یکی از محبوبترین پکیجهای Django است که فریمورکی برای ارائه مدلهای Django ازطریق RESTful interface بهحساب میآید. DRF شامل همه مواردی است که شما نیاز دارید مانند view، serializers، validation، auth و موارد دیگری مانند browsable API، versioning، caching که برای ساخت سریع و آسان APIها استفاده میشود. همچنین Flask دارای چند اکستنشن خوب مانند Flask-RESTful، Flask-Classful، Flask-RESTPlus برای viewها و Flask-Marshmallow برای Serialization و Flask-JWT، Flask-JWT-Extended برای احراز هویت است.
عملکرد Flask اندکی بهتر از Django است زیرا مینیمالتر و کم حجمتر است. البته این تفاوت بسیار ناچیز است بهخصوص زمانیکه I/O را درنظر بگیرید.
پارامترها | Django | Flask |
نوع فریمورک | فولاستک | میکرو فریمورک |
دیتابیس | SQLite, PostgreSQL, MySQL | همه دیتابیسها از جمله NoSQL |
اندازه پروژه | پروژههای بزرگ | پروژههای کوچکتر با پیچیدگی کمتر |
طرح پروژه | یک ساختار مرسوم و یکسان | ساختار منعطف |
نوع برنامه | برنامههای وب با امکانات کامل و همراه با server-side templating | برنامههای استاتیک وب یا وبسرویسهای RESTful که در SPAها و برنامههای موبایلی استفاده میشوند |
RESTful API | Django Rest Framework (DRF) | Flask-RESTful(views) Flask Marshmallow(Serialization) Flask JWT(Auth) |
عملکرد | متوسط | بهتر از Django |
کمپانیها از کدام فریمورک استفاده میکنند؟ | Instagram Udemy Coursera Zapier | Netflix Lyft Zillow MailGun |
طراحی انواع سایت در وب شیفت