در این مطلب می خوایم برای شما توضیح بدیم که جنگو چیست و کاربرد های این فریم ورک در زبان پایتون چگونه هست. به علاوه قراره با مزایا و معایب Django آشنا بشیم. همراه رستاوا آکادمی باشید.
در این مطلب، هدف معرفی کتابخانه جنگو و آموزش اجزاء مختلف آن است. به عبارت دیگر، این آموزش برای آن دسته از برنامهنویسان و توسعهدهندگانی طراحی شده است که قصد دارند نحوه ساختن برنامههای کاربردی تحت وب را با استفاده از تکنیکها و ابزارهای هوشمند ارائه شده توسط جنگو یاد بگیرند.
آنچه که در این مقاله خواهید خواند:
فریم ورک جنگو چیست
جنگو یک چارچوب (یا پلتفرم) سطح بالا برای برنامهنویسی وب در پایتون محسوب میشود .جنگو ، «توسعه سریع» (Rapid Development) و طراحی عملگرا از برنامههای کاربردی تحت وب را برای برنامهنویسان و توسعهدهندگان فراهم میآورد. کتابخانه جنگو به کاربران اجازه میدهد تا با کد نویسی کمتر، برنامههای کاربردی تری را با سرعت بیشتری تولید کنند.
ساختار کلی Django
کتابخانه Django یک پلتفرم جهت توسعه برنامههای کاربردی تحت وب در زبان پایتون به شمار میرود . و به مانند بیشتر پلتفرمهای مدرن، از معماری MVC پشتیبانی میکند. بنابراین ابتدا مفهوم معماری «مدل-نمایش-کنترلگر» (Model-View-Controller | MVC) بررسی میشود. سپس، مدل خاص جنگو برای پیادهسازی معماری MVC، که با نام MVT (معماری Model-View-Template) شناخته میشود، مورد بررسی قرار میگیرد.
معماری MVT
وقتی که در مورد برنامههای کاربردی که از واسط کاربری برخوردارند صحبت میشود، منظور معماری مدل-نمایش-کنترلگر یا MVC است. معماری MVC از سه مؤلفه اصلی یعنی «مدل» (Model)، «نمایش» (View) و «کنترلگر» (Controller) تشکیل شده است. معماری MVT، کمی متفاوتتر از معماری MVC است. در اصل، تفاوت اصلی میان این دو معماری این است که در مدل MVT، کتابخانه Django مدیریت مؤلفه Controller را بر عهده میگیرد. (مؤلفه Controller، کد نرمافزاری است که تعامل میان مؤلفههای Model و View را کنترل میکند).
بنابراین، در معماری MVT، از آنجایی که کتابخانه Django مدیریت مؤلفه Controller را برعهده میگیرد، مؤلفه Template شکل میگیرد. مؤلفه Template، یک فایل HTML است که با «زبان قالب جنگو» (Django Template Language | DTL) ترکیب شده است. دیاگرام زیر، نحوه تعامل مؤلفههای مختلف معماری MVT را با یکدیگر، جهت سرویسدهی به درخواست کاربر، نشان میدهد.
مزایای جنگو چیست
از جمله مزایای استفاده از کتابخانه جنگو، میتوان به موارد زیر اشاره کرد:
- پشتیبانی از «نگاشت مدل اشیاء به مدل رابطهای» (Object-Relational Mapping | ORM): پلتفرم Django، پلی میان «مدل داده» (Data Model) و «موتور پایگاه داده» (Database Engine) پدید میآورد و از مجموعه بزرگی از «سیستمهای مدیریت پایگاه داده» (Database Management Systems) نظیر MySQL ،Oracle ،Postgres و سایر موارد پشتیبانی میکند. همچنین، جنگو از پایگاههای داده NoSQL نیز از طریق انشعاب خاصی از این پلتفرم، به نام Django-nonrel پشتیبانی میکند. در حال حاضر، تنها پایگاههای داده NoSQL که توسط جنگو پشتیبانی میشوند، پلتفرمهای MongoDB و Google App Engine هستند.
- «پشتیبانی چند زبانه» (Multilingual Support): پلتفرم جنگو، از طریق سیستم داخلی بینالملیسازی این پلتفرم، از توسعه وبسایتهای چند زبانه پشتیبانی میکند. چنین امکانی به توسعهدهنده اجازه میدهد تا وبسایتهایی را توسعه دهد که از چندین زبان دنیا پشتیبانی میکنند.
- پشتیبانی از پلتفرمها و چارچوبهای مختلف توسعه وب: پلتفرم Django، پشتیبانی داخلی و تعبیه شده از پلتفرمهایی نظیر Ajax ،RSS ،Caching و سایر موارد فراهم میآورد.
- «واسط کاربری گرافیکی» (Graphical User Interface | GUI) مدیریتی: پلتفرم جنگو، یک واسط کاربری آماده به استفاده (ready-to-use) برای فعالیتهای مدیریتی وبسایت و مؤلفههای آن در اختیار برنامهنویسان و توسعهدهندگان قرار میدهد.
- «محیط توسعه» (Development Environment): کتابخانه Django به همراه یک «وب سرور» (Web Server) سبک عرضه میشود که فرایند توسعه و آزمایش برنامههای کاربردی «سرتاسری» (End-to-End) را تسهیل میکند.
پاسخها