جنگو چیست ؟ فلسک چیست ؟ جنگو یا فلسک ؟ مقایسه جنگو با فلسک ؟ مقایسه django و flask ؟ چگونه متوجه شویم به جعبه ابزار نیاز داریم یا چکش ؟

برای پروژه خود از کدام یک استفاده می کنید؟ جنگو یا فلسک ؟ با خواندن این مقاله به قلم واحد تحریریه تیم هم رویش می توانید مناسب ترین فریمورک را برای پروژه خود انتخاب کنید.

فهرست مطالب

هر دو فریمورک بر پایه زبان پایتون ساخته شده اند. به همین علت آشنایی به زبان پایتون اهمیت بسیاری دارد. طبق نظر سنجی  Python Developers Survey در سال 2018 که توسط JetBrains انجام گرفت، فریمورک جنگو و فلسک (که در ایران گاهی فلاسک هم تلفظ شده) محبوب ترین فریمورک های پایتون هستند. برای کمک به انتخابی آگاهانه بین این دو فریمورک ابتدا هر یک را جداگانه تعریف می کنیم. و با مفهوم جنگو چیست و فلسک چیست ؟ آشنا می شوید. همچنین مزایا و معایب هر دو را بررسی می کنیم. در پایان نیز مواردی که در آن موفق بودند را بازگو می کنیم.

 

تعریف Django و Flask

جنگو چیست؟

جنگو فریمورک رایگان و منبع باز برای توسعه وب پایتون است. این فریمورک از الگو، مدل_ الگو _ نما(MTV) پیروی می کند. در پاییز سال 2003 توسط آدریان هولواتی و سایمون ویلیسون ساخته شد. جنگو برای ساده سازی روند توسعه وب ساخته شد. این برنامه روی کامپوننت هایی با قابلیت استفاده مجدد، مقدار کد کمتر و توسعه سریع تمرکز دارد.

جنگو تحت تاثیر فریمورک های قبلی مانند Zope و Plone قرار گرفته است. همچنین جنگو به نوبه خود روی فریمورک هایی که بعد از آن ساخته شده اند مانند: Pyramid، CherryPy، Bottle و  Web2pyتاثیر بسزایی داشته است. برای آشنایی کامل با فریمورک جنگو، می‌توانید مقاله جنگو چیست ؟ در هم رویش را مطالعه کنید.

 

 

هم رویش منتشر کرده است:

آموزش پروژه محور جنگو -- وبلاگ حرفه‌ای با PostgreSQL و انتشار آنلاین

 

فلسک چیست؟

فلسک چیست ؟ فلسک (که در ایران گاهی فلاسک هم تلفظ می شود) یک ریز فریمورک است که آغازی شگفت آور دارد. در واقع به عنوان یک شوخی اول آوریل آغاز شد. قبل از این که این فریمورک ساخته شود Armin Ronacher، سازنده فلسک، دو راه حل دیگر به نام های Werkzeug (یک فریمورک سرور) و Jinja2 ( یک کتابخانه الگو) را نوشته بود. او تصمیم گرفت این دو را در یک فایل فشرده کنار یکدیگر قرار دهد.

سپس او فریمورک Denied Framework را نوشت.( بعدا نام آن فریمورک را به فلسک تغییر داد.) هنگامی که یک توسعه دهنده این فریمورک را نصب کند، برنامه نصبی به طور خودکار فایل را از حالت فشرده خارج می کند. سپس آن دو برنامه را همزمان اجرا می کند. جالب است بدانید که فلسک بازخورد های مثبتی را در آن زمان دریافت کرد.

پیش از این آموزش پروژه محور flask در هم‌رویش منتشر شده است. پیشنهاد می‌کنم فیلم معرفی این آموزش را در زیر ببینید:

 

 

برای دریافت بسته کامل آموزش پروژه محور Flask کلیک کنید(+).

 

تفاوت های اصلی میان جنگو و فلسک (مقایسه جنگو با فلسک)

برای انتخاب مناسب ترین فریمورک برای پروژه شما، تفاوت های اصلی جنگو و فلسک را در ادامه بررسی می کنیم.

جنگو نگاشت رابطه ای شیء (ORM) خود را فراهم می کند. همچنین از مدل های داده استفاده می کند. در حالی که Flask اصلاً هیچ مدل داده ای ندارد. توسعه دهندگان با استفاده از مدل داده می توانند جداول پایگاه داده را با کلاس ها در یک زبان برنامه نویسی پیوند دهند.

بنابراین آن ها می توانند همانند منابع پایگاه داده با مدل ها کار کنند. این سوال پیش می آید که چرا فلسک هیچ مدل داده ای ندارد؟ پاسخ، آن است که فلسفه فلسک با فلسفه جنگو متفاوت است. جنگو هسته کدی بزرگتری دارد (امکانات پیش ساخته بیشتر) در حالی که فلسک دارای هسته ساده تر و تفکیک ماژولی بیشتری است.

تفاوت اصلی میان Django  و Flask این است که جنگو یک فریمورک Model-View – Controller با ویژگی های کامل را ارائه می دهد. هدف جنگو آسان ساختن روند توسعه وبسایت است.

به تعداد کد کمتر، کامپوننت های قابل استفاده مجدد و توسعه سریع متکی است. از طرفی دیگر فلسک یک ریز فریمورک است که مبتنی بر مفهوم انجام دادن یک کار به خوبی است. این فریمورک  ORM  را ارائه نمی دهد. فقط یک مجموعه اساسی از ابزارها برای توسعه وب را دارد.

برنامه های مبتنی بر فلسک عمدتا برنامه های تک صفحه ای هستند(SPAs). Flask انتخاب مناسبی برای سایت های کوچک و متوسط مانند انجمن ها و وبلاگ های شخصی است. همچنین Django برای پروژه های بزرگ مانند سایت های تجارت الکترونیک و سیستم های مدیریت محتوا بهترین گزینه است.

 

مزایا و معایب این فریمورک ها

در ادامه، به مقایسه جنگو با فلسک بر اساس عملکرد، پکیج ها، جامعه، امنیت و موارد استفاده می پردازیم. درپایان می توانید به راحتی تصمیم بگیرید کدام فریمورک را باید برای پروژه خود انتخاب کنید.

 

عملکرد

تفاوت عملکرد فلسک و جنگو شاخص مهمی از عملکرد سیستم است. اگر یک فریمورک عملکرد بالایی داشته باشد، به یک برنامه مقیاس پذیر، سریع و امن منجر می شود. در عوض اگر فریمورک عملکرد پایینی داشته باشد منجر به مشکلات مقیاس گذاری و مسائل ساختاری خواهد شد.

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

 

پکیج

فلسک مبتنی بر سادگی است و هیچ محدودیتی ندارد. به این معنی که توسعه دهندگان می توانند دقیقاً همان چیزی را که می خواهند با استفاده از کتابخانه های خارجی پیاده سازی کنند. به همین دلیل فلسک قابل توسعه و انعطاف پذیر می باشد.

جنگو دارای تعداد بسیار زیادی پکیج داخلی است. به طور دقیق جنگو تا سپتامبر2019 دارای 4046 پکیج بود. این بدان معناست که شما با تلاش کمتر پکیجی برای ساخت و اجرای برنامه خود پیدا خواهید کرد.

 

جامعه

در مقایسه Django و Flask، جنگو دارای یک جامعه توسعه دهنده بزرگ و فعال است. اگر سوالی داشته باشید می توانید در پورتال های مختلف و تالار های گفتمان مانند Stack Overflow  پرسش خود را قرار دهید. در بیشتر مواقع هم پاسخ سوالتان را دریافت خواهید کرد. همچنین پیدا کردن شغل جنگو نیز آسان است.

جامعه Flask به بزرگی جنگو نیست. به همین علت اگر در برنامه نویسی  فلسک مشکل داشته باشید یا سوالی برایتان پیش بیاید، یافتن جواب آن ممکن است مدت زمانی طول بکشد.

 

امنیت

در جنگو گزینه هایی برای محافظت از برنامه شما در برابرمسائل زیر وجود دارد:

  • برنامه نویسی بین سایت (XSS). حملات XSS یک مهاجم را قادر می سازد اسکریپت های سمت مشتری را به مرورگرها وارد کند.
  • جعل درخواست از طریق سایت (CSRF). حملات CSRF به یک کاربر مخرب اجازه می دهد تا اقدامات مربوط به اعتبار کاربر دیگری را انجام دهد. جنگو از اکثر انواع حملات CSRF محافظت می کند.
  • SQL injection حمله ای است که در آن یک کاربر مخرب می تواند کد SQL را خودسرانه بر روی یک پایگاه داده اجرا کند. مجموعه کوئری های جنگو که به صورت پارامتر ساخته شده اند در برابر تزریق SQL محافطت می شوند.
  • کتابخانه امنیت فلسک تقریباً مکانیسم های مشابه جنگو را فراهم می کند. از انتشار داده ها به بیرون و سایر حملات وب نیز محافظت می کند.

 

موارد استفاده

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

در ادامه  به بررسی نمونه های برجسته ای از وب سایت های جنگو و فلسک می پردازیم.

 

کدام پروژه ها با جنگو ساخته شده اند؟

بسیاری از وبسایت ها از جنگو استفاده می کنند. این فریمورک برای مقیاس بندی ساده است. همچنین توانایی پردازش مقدار بسیار زیادی داده را به صورت بلادرنگ فراهم می کند. به همین علت بسیاری از سایت های پر بازدید از آن استفاده می کنند. در تصویر زیر مشهور ترین پروژه های جنگو را مشاهده می کنید:

 

مقایسه-جنگو-با-فلسک-مقایسه-django-و-flask-هم-رویش
مشهورترین پروژه های جنگو

 

 

هم رویش منتشر کرده است:

آموزش ساخت شبکه اجتماعی شبیه اینستاگرام با جنگو ___ ‌بسته جامع

 

 

تجربه عملی Steelkiwi در توسعه پروژه های جنگو

مثال هایی از برنامه هایی که با استفاده از جنگو ساخته شده اند:

  • Population Explorer, یک پروژه SaaS که به کاربران امکان دسترسی به داده های جمعیت شناختی و ابزارهای تجزیه و تحلیل روی نقشه را می دهد. کاربران یک منطقه هدف را انتخاب می کنند. سپس اطلاعات دموگرافیک مربوط به آن مانند توزیع جنسیتی، توزیع سن، جمعیت، تراکم جمعیت و رشد جمعیت را بدست می آورند.  یک سیستم پرداخت نیز ساخته شده است. با استفاده از این سیستم  کاربران می توانند برنامه های اشتراکی را از طریق وب سایت خریداری کنند. این برنامه شامل حجم وسیعی از داده ها و بسیاری از ویژگی های مختلف است. هر چیزی که بخواهید با جنگو امکان پذیر خواهد بود.
  • Possio، یک پلتفرم SaaS که در آن کاربران می توانند مکان های وسیله نقلیه را بیابند. همچنین داده های مربوط به ترمزگیری شدید، شتاب سریع، رانندگی تهاجمی و سرعت غیرمجاز را نیز ردیابی کنند. از آنجا که Possio حجم عظیمی از داده ها را بلادرنگ پردازش می کند، جنگو یک راه حل عالی برای آن است.

 

پروژه هایی که با Flask ساخته شده اند

Flask یکی از برجسته ترین فریمورک های توسعه وب پایتون است. طبق نظرسنجی توسعه دهندگان پایتون توسط JetBrains، استفاده از فلسک در میان توسعه دهندگان از 41٪ در  سال 2017 به 47٪ در سال 2018 افزایش یافته است.

شرکت های مشهور جهان مانند Airbnb و  Redditبنابر دلایل زیادی از فلسک استفاده می کنند. Flask به شما امکان کنترل بیشتر روی پروژه را می دهد. زیرا شما می توانید انتخاب کنید از کدام کامپوننت ها استفاده کنید. همچنین نحوه ی تعامل با آن ها را نیز می توانید تعیین کنید. همچنین می توانید هر افزونه ای را که نیاز دارید را اضافه کنید.

وبسایت شرکت های مشهور زیر از فلسک استفاده کرده اند:

 

مقایسه-جنگو-با-فلسک-فلسک-چیست-مقایسه-django-و-flask-هم-رویش
وبسایت شرکت های مشهور فلسک

 

تجربه عملی Steelkiwi در توسعه پروژه های فلسک

یکی از پروژه های Flask که ساخته شده است Cybertunity است. با استفاده از این برنامه کاربران می توانند دانش خود را درباره امنیت سایبری به اشتراک بگذارند. این پروژه کاربران را به دو گروه تقسیم بندی می کند. به همه کاربران یک نظرسنجی متشکل از 60 سوال طبقه بندی شده موضوعی ارائه می دهد.

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

 

کدام یک؟ مقایسه چکش با جعبه ابزار، کدام فریمورک انتخاب شود؟ جنگو یا فلسک ؟

در این قسمت ابتدا ویژگی ها و نقاط قوت Django و Flask را به طور خلاصه بیان می کنیم. در پایان می توانید تصمیم بگیرید که کدام فریمورک را انتخاب کنید. جنگو یا فلسک ؟

 

مقایسه-جنگو-با-فلسک-فلسک-چیست-مقایسه-django-و-flask-هم-رویش
جنگو یا فلسک ؟

 

در مقایسه جنگو با فلسک ، اگر محدودیت زمانی دارید یا بودجه محدودی دارید، جنگو را انتخاب کنید. جنگو یک راه حل مناسب برای MVP ها، پلتفرم های تجارت الکترونیک، برنامه های mHealth و وب سایت های دولتی است.

اگر یک پروژه کوچک یا متوسط دارید که نیازهای منحصر به فردی دارد. همچنین به کامپوننت های سفارشی نیز نیاز دارد، Flask را انتخاب کنید. فلسک  برای نمونه سازی اولیه بسیار مناسب است.

Django تعداد زیادی راه حل داخلی دارد. Flask اغلب به منظور استفاده ازپکیج مناسب برای حل یک مشکل خاص انتخاب می شود. بر اساس این دو دلیل نتیجه گیری ما این است: Django یک جعبه ابزار است و Flask یک چکش(ابزار) است.

امیدواریم که این مقاله به شما برای درک بهتر از مزایا و معایب این پلتفرم ها، تفاوت ها و موارد استفاده آن ها کمک کرده باشد.

** لازم به ذکر است که پیش از این در هم‌رویش مقاله‌ای منتشر شد که بیشتر از زبان طرفداران فلسک نوشته شده بود، برای مطالعه این مقاله اینجا کلیک کنید (+).

در این مقاله به نفع هواداران جنگو از جنگو گفتیم! اما در مجموع در نظر داشته باشید که انتخاب فریمورک قطعی نیست و همیشه به شرایط شما بستگی دارد.

برای مقایسه جنگو با فست ای پی آی و یا فست ای پی آی با فلسک به لینگ زیر مراجعه کنید:

جنگو یا فست ای پی آی؟ جنگو یا فلسک؟ — مقایسه بهترین کتابخانه وب پایتون

 

کلید واژگان

مقایسه جنگو با فلسک – مقایسه فلاسک با جنگو – جنگو چیست ؟ – فلسک چیست ؟ – جنگو یا فلسک ؟ – مقایسه django با flask – مقایسه flask با django – مقایسه فلسک با چنگو – django چیست ؟ – flask چیست ؟ – تفاوت فلسک با جنگو – فریمورک جنگو – فریم ورک جنگو – فریمورک فلسک – مقایسه جنگو با فلسک – مقایسه django و flask – فلسک چیست ؟ 

 

منبع :

Flask vs Django: How to Understand Whether You Need a Hammer or a Toolbox

 

 

دوره های آموزشی مرتبط

نویسنده :

سئو و ویراستاری :

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Search

مطالب مرتبط

دسته بندی مطالب