جنگو (Django) چیست؟ آشنایی با محبوب‌ترین فریم‌ورک پایتون

?What is Django

11 اردیبهشت 1400
django-introduction

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

جنگو (Django)؛ فریم‌ ورک سطح بالای پایتون

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

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

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

تاریخچه جنگو

در سال 2003 Adrian Holovaty و Simon Willison به عنوان یک پروژه داخلی در روزنامه معتبر Lawrence آن را کلید زدند و در جولای سال 2005 میلادی به نام جنگو (django) عرضه شد. رشد و استقبال از آن در همان سال عرضه شدنش آنقدر مثبت بود که چندین سایت بزرگ پرترافیک به آن روی آوردند. هم اکنون جنگو یک پروژه اوپن سورس یا متن باز با کاربرانی گسترده از تمام جهان است.

الگوهای طراحی Django

Loosely Coupled

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

Less Coding

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

(Don't Repeat Yourself (DRY

DRY به معنای خودت را تکرار نکن یعنی هر چیزی را به جای اینکه چندین بار طراحی کنید و در دام تکرار بیهوده بیفتید یک بار طراحی کنید و چندین بار از آن استفاده کنید.

Fast Development

همانطور که گفته شد یکی از مهم ترین اهداف جنگو سرعت بخشیدن به انجام پروژه توسط شماست.

Clean Design

جنگو بر واضح و تمیز نوشتن کدها تاکید بسیاری دارد.

ویژگی های مثبت جنگو (Django)

پشتیبانی از (Object-Relational Mapping (ORM

جنگو یک پل ارتباطی بین مدل های داده ایی و پایگاه داده می سازد. جنگو از اکثر پایگاه داده ها پشتیبانی می کند. MySQL ،Oracle ،Postgres و MongoDB از جمله پایگاه داده هایی هستند که توسط جنگو پشتیبانی و توسط برنامه نویسان به کار برده می شوند.

Multilingual Support (پشتیبانی از چند زبانی)

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

Framework Support

فریمورک جنگو همچنین از دیگر فریمورک ها مانند Ajax ،RSS ،CASHING و دیگر فریمورک ها پشتیبانی می کند.

Administration GUI

جنگو یک رابط کاربری بسیار خوب برای مدیریت فعالیت ها برای شما به ارمغان می آورد.

Development Environment

جنگو از وب سرور lightweight برای آسان سازی توسعه و تست برنامه های end-to-end استفاده می کند. البته از بقیه وب سرورها مانند وب سرور آپاچی (apache) هم پشتیبانی می کند.

پشتیبانی جنگو (Django) از معماری MVC

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

در معماری MVC اولین واژه نشانگر کامپوننت MODEL است که مربوط به قسمت اطلاعات و داده ها یا همان پایگاه داده ها می باشد. V نمایانگر کامپوننت VEIW است که در واقع وظیفه رندر کردن قسمت مدل برای کاربر را برعهده دارد یا به زبان ساده و کلی وظیفه نمایش به کاربر را انجام می دهد. C نشانگر کامپوننت CONTROLLER است، قسمتی که درخواست ها را از کاربر دریافت می کند و با تعامل بین دو بخش دیگر مدل و ویو پاسخ مناسب به درخواست را ارسال می کند.

در جنگو هم الگو معماری MVT از لحاظ مفهومی دقیقا همان MVC است با این تفاوت که TEMPLATE همان عملکرد VEIW در MVC و VEIW در معماری MVT همان نقش CONTROLLER در معماری را MVC را ایفا می کند. در تصویر زیر شمای کلی نحوه عملکرد معماری MVT در جنگو را مشاهده می کنید:

ساختار معماری MVT در جنگو


منبع: وب سایت tutorialspoint

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش جنگو در پایتون توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما (3 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

محمد جواد
25 مرداد 1398
دمت گرم حال کردم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

سحر
19 اردیبهشت 1398
عالی بود ممنون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

مهرگان
06 اسفند 1397
سلام ممنون مفید بود :) به جای دی جنگو در متن بنویسید جنگو ;) خط آخر

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.