زبان برنامه نویسی پایتون یک زبان جذاب همه کاره است که با آن کارهای مختلفی از جمله توسعه وب، ساخت اپلیکیشن های موبایل و دسکتاپ، ساخت بازی را می توان انجام داد، همچنین استفاده در حوزه های علوم داده، هوش مصنوعی، یادگیری ماشین و ... نیز از دیگر کاربردهای این زبان قدرتمند است. در این مبحث قرار است بیاموزیم که جنگو چیست و با این فریم ورک محبوب و قدرتمند آشنا شویم.
جنگو (Django) یک فریمورک سطح بالا برای توسعه وب با استفاده از زبان پایتون است. این وب فریمورک به شما کمک می کند تا سریع تر، آسان تر و با کدهایی تمیزتر پروژه خود را توسعه بدهید.
دیگر فریمورک پایتونی که برای توسعه وب به کار برده می شود فلسک (Flask) نام دارد که از جنگو محیط انعطاف پذیرتری دارد و دست برنامه نویس را در ساخت پروژه در این فریمورک بازتر است، با این حال جنگو با ارائه راهکارهایی جهت سرعت بخشیدن و آسان کردن برنامه نویسی، محبوب ترین فریمورک پایتونی برای توسعه وب می باشد.
سایت های بزرگی در دنیا وجود دارند که با استفاده از جنگو پیاده سازی شده اند. اینستاگرام، دراپ باکس، یوتیوب، کوئرا و ... معروف ترین سایت هایی هستند که با جنگو پیاده سازی شده اند.
در سال 2003 Adrian Holovaty و Simon Willison به عنوان یک پروژه داخلی در روزنامه معتبر Lawrence آن را کلید زدند و در جولای سال 2005 میلادی به نام جنگو (django) عرضه شد. رشد و استقبال از آن در همان سال عرضه شدنش آنقدر مثبت بود که چندین سایت بزرگ پرترافیک به آن روی آوردند. هم اکنون جنگو یک پروژه اوپن سورس یا متن باز با کاربرانی گسترده از تمام جهان است.
Loosely Coupled
در فریمورک جنگو هر عنصر استک مستقل از بقیه عناصر است. یعنی وقتی در یک بخشی از کدی از یک پروژه تغییر ایجاد می کنیم، بر روی عملکرد بقیه بخش ها تاثیری کمی دارد و باعث اخلال نمی شود.
Less Coding
همانطور که از اسمش هم پیداست، جنگو به شما کمک می کند تا با نوشتن کدهای کمتری به هدف خود برسید و سرعت طراحی و توسعه پروژه خود را بالا ببرید.
(Don't Repeat Yourself (DRY
DRY به معنای خودت را تکرار نکن یعنی هر چیزی را به جای اینکه چندین بار طراحی کنید و در دام تکرار بیهوده بیفتید یک بار طراحی کنید و چندین بار از آن استفاده کنید.
Fast Development
همانطور که گفته شد یکی از مهم ترین اهداف جنگو سرعت بخشیدن به انجام پروژه توسط شماست.
Clean Design
جنگو بر واضح و تمیز نوشتن کدها تاکید بسیاری دارد.
پشتیبانی از (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 در جنگو را مشاهده می کنید:
منبع: وب سایت tutorialspoint
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.