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

در این نوشته هر آنچه برای شروع کار با جنگو نیاز است از نصب پایتون گرفته تا راهاندازی محیط مجازی و ایجاد پروژه با جنگو را به صورت گامبهگام خواهید آموخت. علاوه بر این، با مطالعه این مطلب یاد خواهید گرفت که کاربردهای مختلف فریم ورک جنگو چیست و با نحوه عملکرد آن نیز آشنا خواهید شد.
فریم ورک جنگو چیست؟
«جنگو» (Django) یکی از فریمورکهای زبان محبوب پایتون است که فرایند ایجاد وبسایت را بسیار آسان میکند. جنگو برای بسیاری از چالشهای موجود در توسعه وبسایت راهحلهای مطمئنی ارائه میدهد. بنابراین، توسعهدهندگان بدون دغدغه میتوانند بر روی توسعه بخشهای اصلی و عملکردهای مهم وبسایت خود تمرکز کنند.
یکی از مهمترین ویژگیهای فریم ورک جنگو قابلیت استفاده مجدد از کامپوننتها است که تاکید ویژهای نیز بر روی این ویژگی دارد. به عنوان مثال، بسیاری از عملکردهای رایج در یک وبسایت نظیر سیستم ورود و ثبتنام کاربران، ارتباط با پایگاه داده و انجام عملیات «ایجاد، خواندن، بهروزرسانی و حذف» (Create Read Update Delete | CRUD) بر روی آن به صورت کامپوننتهای آماده در جنگو وجود دارند. جنگو به طور خاص برای توسعه وبسایتهای مبتنی بر پایگاه داده کاربرد دارد.

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

ساخت وب سایتهای پویا و تعاملی
جنگو با ارائه ابزارهای آماده به توسعهدهندگان امکان میدهد تا در زمان بسیار کم وبسایتهایی پویا و تعاملی ایجاد کنند. توسعهدهندگان با جنگو میتوانند فروشگاههای آنلاین، سیستمهای مدیریت محتوا، وبلاگها و سایتهای خبری را در کوتاهترین زمان ممکن و بدون دردسر توسعه دهند. البته این سرعت بالا در توسعه به هیچ عنوان مانعی در برابر عملکرد نیست و با جنگو میتوان وبسایتهای پیچیدهای را توسعه داد که به صورت همزمان به میلیونها کاربر خدمات ارائه کنند.
ساخت API برای اپلیکیشنهای موبایل
فریم ورک جنگو با معرفی ابزار Django REST Framework به توسعهدهندگان اجازه میدهد تا APIها و وبسرویسهای قدرتمندی را برای ارتباط با اپلیکیشنهای موبایل و سایر برنامههای فرانتاند توسعه دهند. برای آشنایی بیشتر با نحوه ساخت API برای اپلیکیشنهای موبایل با جنگو میتوانید فیلم آموزش ساخت Web APIs با Django Rest فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
توسعه سریع و ایجاد نمونه اولیه
با توجه به ابزارهای آماده و ساختار منظم جنگو توسعهدهندگان میتوانند در مدت زمان کوتاهی برای ایدههای خود نسخه اولیه یا MVP ایجاد کنند. برای آشنایی بیشتر با مفهوم MVP میتوانید مطلب زیر از مجله فرادرس را مطالعه کنید.
مدیریت و نظارت بر اطلاعات
یکی از قابلیتهای جذاب فریم ورک جنگو ارائه یک پنل مدیریت قدرتمند است که به توسعهدهندگان اجازه میدهد تا دادهها و اطلاعات کاربران را به سادگی مدیریت کنند. به عنوان مثال، یک مدیر فروشگاه اینترنتی به آسانی میتواند محصول جدیدی را به سایت اضافه کند و بر تراکنشهای اخیر فروشگاه نیز نظارت داشته باشد.
پیادهسازی سیستمهای امنیتی قوی
یکی از ویژگیهای بسیار مهم فریم ورک جنگو امنیت بسیار بالای آن است. این فریمورک به صورت خودکار از حملات و تهدیدهای رایج موجود در دنیای وب نظیر تزریق SQL، «اجرای کدهای مخرب در مرورگر کاربران» (Cross-Site Scripting | XSS) و «جعل درخواست بینسایتی» (Cross-Site Request Forgery | CSRF) جلوگیری میکند. بنابراین، حتی توسعهدهندگان تازهکار نیز میتوانند با خیال راحت از فریم ورک جنگو استفاده کنند و نگرانی بابت مسائل امنیتی مربوط به سایت خود نداشته باشند.

ساخت وبسایتهای مقیاس پذیر
فریم ورک جنگو مقیاس پذیری بسیار بالایی دارد. به زبان ساده، میتوان از جنگو برای پروژههای کوچک تا بسیار بزرگ نظیر شبکههای اجتماعی با کاربران زیاد استفاده کرد. جنگو برای این منظور از چندین سرور و دیتابیس پشتیبانی میکند و برای افزایش سرعت نیز دارای قابلیت «کش» (Cache) است.
مدیریت دیتابیس بدون نیاز به SQL
جنگو برای ارتباط با دیتابیس و کار با آن از مدل «نگاشت شی رابطهای» (Object Rational Mapping) پشتیبانی میکند. در واقع برای ارتباط با دیتابیس با جنگو نیازی به نوشتن دستورات SQL نیست و میتوان با کدهای پایتون این کار را انجام داد. برای یادگیری بیشتر در خصوص ارتباط با پایگاه داده در جنگو میتوانید فیلم آموزش ارتباط با پایگاه داده در جنگو از فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
به زبان ساده، ORM همانند یک مترجم عمل میکند که کدهای پایتون مورد نیاز برای ارتباط با دیتابیس را به کدهای SQL تبدیل میکند. در نتیجه، ارتباط با دیتابیس و کار با آن با فریم ورک جنگو بسیار خواهد بود. بر همین اساس جنگو گزینه بسیار خوبی برای سایتهایی محسوب میشود که به تعامل زیادی با پایگاه داده نیاز دارند.
فریم ورک جنگو چگونه کار میکند؟
تا به اینجای نوشته به احتمال زیاد درک کردهاید که فریمورک جنگو با ارائه امکانات و دارا بودن ویژگیهای متعدد فرایند توسعه وبسایتها را بسیار آسان کرده است. در این بخش نحوه عملکرد فریم ورک جنگو مورد بررسی قرار خواهد گرفت. برای این منظور بهتر است ابتدا به این پرسش پاسخ داده شود که تفاوت عملکرد یک وبسایت سنتی مبتنی بر داده با یک وبسایت مبتنی بر فریم ورک جنگو چیست.
نحوه عملکرد وب سایت سنتی مبتنی بر داده
در یک وبسایت سنتی مبتنی بر داده، برنامه وب منتظر درخواستهای HTTP از سمت مرورگر وب یا سایر کاربران باقی میماند. بعد از دریافت درخواست برنامه وب URL را بررسی میکند و بر اساس اطلاعات موجود در دادههای POST و GET پردازش را انجام میدهد. در فرایند پردازش بسته به شرایط ممکن است اطلاعاتی از پایگاه داده خوانده شود یا اطلاعاتی در پایگاه داده درج شود. علاوه بر این، سایر کارهای لازم برای تکمیل درخواست کاربر نیز انجام میشود. بعد از انجام فرایندهای ذکر شده برنامه پاسخ را به مرورگر کاربر ارسال میکند که این پاسخ اغلب به صورت یک صفحه HTML است که دادههای مورد انتظار کاربر در آن قرار دارند. در این شیوه هر بار که کاربر عملی انجام دهد یا صفحهای را دریافت کند، تمام صفحه دوباره بارگذاری میشود.
نحوه عملکرد وب سایت مبتنی بر فریم ورک جنگو
وبسایتهای مبتنی بر جنگو برای ارسال پاسخ به کاربر کدهای مربوط به هر کدام از مراحل ذکر شده در بخش قبلی را در فایلهای جداگانهای گروهبندی کرده و مدیریت میکنند. فریم ورک جنگو بر اساس معماری «Model-View-Template | MVT» عمل میکند که شباهت بسیاری به معماری معروف MVC دارد.

به زبان ساده، فرایند کار در وبسایتهای مبتنی بر فریم ورک جنگو به صورت زیر است.
- درخواست کاربر (Request): با وارد کردن آدرس سایت در مرورگر توسط کاربر یک درخواست از نوع HTTP به سرور ارسال میشود.
- مسیریابی (URL Routing): جنگو برای مسیریابی از فایلی به نامurls.py استفاده میکند که با استفاده از آن مسیر URL دریافتی را به تابع یا کلاس (View) مشخصی هدایت میکند. این فایل همانند نقشهای است که مشخص میکند کدام قسمت از کد باید درخواست کاربر را پردازش کند.
- منطق برنامه در View: منطق اصلی برنامه درون تابع یا کلاس مشخصی پیادهسازی میشود که در این معماری View نام دارد. این منطق میتواند شامل دریافت و پردازش دادهها یا استخراج اطلاعات باشد.
- مدلها (Model): در این معماری مدلها نشاندهنده جداول پایگاه داده هستند که از طریق آنها میتوان مکانیزمهایی برای مدیریت پایگاه داده پیادهسازی کرد.
- رندر قالب (Template): بعد از پردازش دادهها، View اطلاعات به دست آمده را به یک قالب یا Template ارسال میکند. قالبها فایلهای HTML هستند که به کمک جنگو میتوانند دادههای پویا را نمایش دهند.
- ارسال پاسخ: بعد از رندر شدن قالب پاسخ نهایی به صورت HTML به مرورگر کاربر فرستاده میشود و صفحه وبسایت به کاربر نمایش داده خواهد شد.
آموزش شروع کار با فریم ورک جنگو
در این بخش از نوشته به صورت گامبهگام هر آنچه برای شروع کار با فریم ورک جنگو نیاز است آموزش داده شده است. با دنبال کردن مراحل زیر خواهید توانست اولین پروژه خود با جنگو را ایجاد کنید.
گام ۱: نصب پایتون
پیش از شروع کار با جنگو باید پایتون را بر روی سیستم خود نصب کنید. برای این منظور میتوانید به سایت رسمی پایتون مراجعه کنید و نسخه مناسب را برای سیستمعامل خود نصب کنید.
- لینک دانلود پایتون: «+»
بعد از اتمام دانلود فایل مورد نظر را اجرا کنید و مراحل نصب را به ترتیب انجام دهید. برای دسترسی به پایتون از طریق خط فرمان باید گزینهAdd Python to PATH را در فرایند نصب انتخاب کنید. برای یادگیری بیشتر در خصوص نصب پایتون میتوانید فیلم آموزش رایگان نصب پایتون در ویندوز از فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
گام ۲: ساخت محیط مجازی
به منظور جلوگیری از تداخل بین پروژههای مختلف پیشنهاد میشود که برای هر پروژه جنگو یک «محیط مجازی» (Virtual Environment) مستقل ایجاد کنید. با این کار تنها کتابخانههای مورد نیاز برای پروژه در یک محیط جداگانه قرار میگیرند و از بروز تداخل با کتابخانههای سایر پروژهها جلوگیری میشود. برای ایجاد محیط مجازی کافی است تا از طریق «رابط خط فرمان» (CMD) به پوشه مورد نظر برای پروژه بروید. سپس، دستور زیر را اجرا کنید.
با اجرای دستور بالا یک پوشه به نامenv ایجاد میشود که تمام کدهای لازم برای اجرای پایتون را خواهد داشت. به منظور فعال کردن محیط مجازی در ویندوز دستور زیر را وارد کنید.
برای فعال کردن محیط مجازی در مک یا لینوکس نیز دستور زیر را اجرا کنید.
بعد از فعال شدن محیط مجازی نام انتخاب شده برای محیط مجازی را در ابتدا خط فرمان مشاهده خواهید کرد. با توجه به تعیین نامenv برای محیط مجازی رابط خط فرمان به صورت زیر خواهد بود.
گام ۳: نصب جنگو
بعد از ایجاد محیط مجازی همه چیز برای نصب جنگو آماده است. برای نصب جنگو کافی است تا دستور زیر را در رابط خط فرمان وارد کنید.
با اجرای دستور بالا آخرین نسخه فریم ورک جنگو نصب خواهد شد. بعد از اتمام فرایند نصب با وارد کردن دستور زیر در رابط خط فرمان میتوانید از نصب صحیح جنگو اطمینان حاصل کنید.
با اجرای دستور بالا نسخه فریم ورک جنگو نمایش داده خواهد شد که خروجی آن به صورت زیر خواهد بود.
5.1.7
برای آشنایی با فرایند نصب جنگو میتوانید فیلم آموزش رایگان فریم ورک جنگو و راهنمای نصب و ایجاد اولین پروژه از فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
گام ۴: ایجاد پروژه جدید در جنگو
برای ایجاد پروژه جنگو کافی است تا از طریق رابط خط فرمان به سراغ پوشه مربوط به محیط مجازی بروید. سپس، دستور زیر را در رابط خط فرمان اجرا کنید.
با اجرای دستور بالا پروژه جنگو با نامmyproject در محیط مجازی فعال ساخته میشود.
گام ۵: آشنایی با ساختار پروژه در جنگو
بعد از ساخت پروژه جنگو پوشه جدیدی با نامmyproject در مسیر محیط مجازی فعال ایجاد میشود. فایلهای موجود در این پوشه به ترتیب زیر خواهند بود.
در ادامه این بخش هر کدام از فایلهای موجود در پروژه جنگو مورد بررسی قرار خواهد گرفت.
- فایلmanage.py : از این فایل برای مدیریت پروژه جنگو استفاده میشود. از طریق این فایل میتوان دستورهای مدیریتی مختلف همچون اجرای سرور، تغییر پایگاه داده و سایر موارد دیگر را اجرا کرد.
- فایلasgi.py وwsgi.py : به عنوان واسط بین سرور وب و پروژه جنگو است.
- فایلsettings.py : تنظیمات اصلی پروژه همچون پیکربندی پایگاه داده، مسیر فایلها، تنظیمات امنیتی و بسیاری از تنظیمات دیگر در این فایل قرار میگیرد.
- فایلurl.py : مسیریابی درخواستهای کاربر از طریق این فایل صورت میگیرد.
گام ۶: اجرای سرور توسعه
بعد از اتمام فرایند ساخت پروژه میتوانید پروژه جنگو خود را اجرا کنید و خروجی آن را در مرورگر مشاهده کنید. برای این منظور از طریق رابط خط فرمان وارد پوشه پروژه شوید. برای ورود به پروژه جنگو کافی است تا دستور زیر را در رابط خط فرمان وارد کنید.
سپس، برای اجرای سرور دستور زیر را در رابط خط فرمان اجرا کنید.
خروجی حاصل از اجرای دستور بالا به صورت زیر خواهد بود.
Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. March 19, 2025 - 14:19:38 Django version 5.1.7, using settings 'my_tennis_club.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
برای اطمینان از اجرای صحیح پروژه جنگو کافی است تا در مرورگر خود آدرس127.0.0.1:8000 را وارد کنید. در صورت انجام صحیح تمام مراحل با صفحه زیر مواجه خواهید شد.

گام ۷: ایجاد اپلیکیشن در پروژه
هر پروژه جنگو از یک یا چند اپلیکیشن تشکیل میشود که هر کدام عملکرد یا ویژگی مستقلی را برعهده دارند. به عنوان مثال شرایطی را در نظر بگیرید که یک وبسایت فروشگاهی دارید که علاوه بر فروشگاه آنلاین دارای بخش وبلاگ و باشگاه مشتریان نیز است. در نتیجه، به جای نوشتن کد تمام بخشها در یک فایل میتوانید هر بخش را به صورت یک اپلیکیشن جداگانه پیادهسازی کنید. برای ایجاد اپلیکیشن در پروژه جنگو کافی است دستور زیر را در رابط خط فرمان اجرا کنید.
با اجرای دستور بالا یک پوشه جدید به نامmyapp در پروژه جنگو ایجاد میشود که شامل فایلهایviews.py ،urls.py ،models.py و سایر موارد دیگر است. پیشتر در مورد هر کدام از این فایلها به طور کامل نکاتی عنوان شد. علاوه بر این، باید در فایلmyproject/settings.py در بخشINSTALLED_APPS نام اپلیکیشن جدید یعنیmyapp اضافه شود تا جنگو از وجود این اپلیکیشن آگاه شود.
چگونه فریم ورک جنگو را یاد بگیریم؟
جنگو یکی از فریم ورکهای زبان پایتون است که به توسعهدهندگان وب کمک میکند تا وبسایتهایی امن، پویا و مقیاسپذیر توسعه دهند. جنگو به دلیل ساختار سازمان یافته، استفاده از الگوی معماری MVT، مقیاسپذیری بالا، منابع فراوان و فرصتهای شغلی متنوع یکی از بهترین گزینهها برای ورود به دنیای برنامه نویسی وب محسوب میشود. با یادگیری فریم ورک جنگو به سادگی میتوانید وارد دنیای برنامه نویسی وب شوید و پروژههای امن و کاربردی را توسعه دهید.
برای شروع یادگیری فریم ورک جنگو ابتدا باید به مبانی برنامه نویسی پایتون تسلط داشته باشید. جنگو بر پایه زبان پایتون نوشته شده است. بنابراین، نیاز است که در گام نخست مفاهیم پایه موجود در زبان پایتون نظیر متغیرها، انواع داده، توابع، دستورات شرطی و سایر موارد دیگر را یاد بگیرید. بعد از تسلط به مفاهیم اولیه میتوانید به سراغ یادگیری مفاهیم پیشرفته پایتون مانند کلاسها و شیگرایی بروید. علاوه بر زبان پایتون باید با مفاهیم پایه برنامه نویسی وب مانند HTML ،CSS، جاوا اسکریپت و مفاهیم مرتبط با کلاینت و سرور نیز آشنایی داشته باشید. به طور خلاصه پیش از شروع یادگیری جنگو باید مراحل زیر را طی کنید.
- یادگیری مفاهیم پایه زبان برنامه نویسی پایتون
- یادگیری مفاهیم پیشرفته در پایتون
- آشنایی با مفاهیم پایه وب
بعد از گذراندن پیشنیازهای ارائه شده در بالا میتوانید یادگیری فریم ورک جنگو را شروع کنید. برای شروع یادگیری جنگو میتوانید از منابع مختلف آموزشی همچون مستندات رسمی، کتابهای مرتبط، مقالات آنلاین و آموزشهای ویدیویی استفاده کنید. در این بین آموزشهای ویدیویی گزینه مناسبتر و مقرون به صرفهتری نسبت به سایر گزینهها محسوب میشوند. برای یادگیری جنگو میتوانید از فیلمهای آموزشی منتشر شده در سایت فرادرس استفاده کنید. این آموزشها در مجموعه فیلمهای آموزش مقدماتی تا پیشرفته جنگو فرادرس قابل دسترسی هستند که لینک مربوط به آنها در ادامه آورده شده است.
با مشاهده فیلمهای موجود در این مجموعه در مدت زمان بسیار کوتاهی کار با فریم ورک جنگو را یاد خواهید گرفت. در این مجموعه چندین فیلم آموزشی پروژه محور نیز در کنار سایر آموزشهای موضوع محور منتشر شده است که به درک بهتر فریم ورک جنگو و کاربردهای عملی آن کمک میکنند. برای شروع یادگیری میتوانید آموزشهای پیشنهادی زیر را به ترتیب مشاهده کنید.

نمونه واقعی از نحوه عملکرد فریم ورک جنگو
برای درک بهتر نحوه عملکرد فریم ورک جنگو بیاید یک مثال واقعی از این فریمورک را بررسی کنیم. شرایطی را در نظر بگیرید که یک کاربر قصد دارد صفحه محصولات در یک فروشگاه اینترنتی را مشاهده کند و این فروشگاه نیز با فریم ورک جنگو در پایتون توسعه داده شده است. بر همین اساس به ترتیب مراحل زیر برای پردازش درخواست کاربر و نمایش صفحه محصولات فروشگاه به او رخ خواهد داد.
گام ۱: درخواست کاربر
کاربر در مرورگر خود آدرسexample.com/products را وارد میکند. سپس، این درخواست به سرور جنگو ارسال میشود.
گام ۲: مسیریابی (URL Routing)
جنگو با استفاده از فایلurls.py این درخواست را بررسی میکند و مشخص میکند که کدام بخش از کد باید این درخواست را پردازش کند.
در قطعه کد بالا درخواست/products به تابعproducts_list در فایلviews.py ارسال میشود.
گام ۳: پردازش درخواست (View)
تابعproducts_list در فایلviews.py دادهها را از پایگاه داده دریافت میکند که در این جا لیست محصولات مورد انتظار است. سپس، این دادهها را به یک قالب Template تبدیل میکند.
گام ۴: مدل و ارتباط با پایگاه داده (Model)
فایلmodels.py ساختار پایگاه داده را مشخص میکند. قطعه کد زیر این فایل را نشان میدهد.
فریم ورک جنگو با استفاده از ORM مدل را به جداول پایگاه داده تبدیل میکند که در نتیجه نیازی به نوشتن کدهای SQL برای ارتباط با پایگاه داده نیست.
گام ۵: قالببندی صفحه (Template)
بعد از اتمام پردازش View اطلاعات را به یک قالب HTML ارسال میکند. در این مثال فایلproducts.html صفحه لیست محصولات را به کاربر نشان میدهد.
در مثال بالا دادههای مربوط به قیمت و نام محصول از بخش View دریافت شده و جایگزین میشود.
گام ۶: ارسال پاسخ به کاربر
در نهایت جنگو صفحه HTML آماده شده را همراه با دادههای مرتبط به مرورگر کاربر میفرستد و کاربر میتواند لیست محصولات سایت را مشاهده کند.
معماری MVT در فریم ورک جنگو چیست؟
فریم ورک جنگو از معماری ۳ لایه Model-View-Template پیروی میکند که در اصطلاح MVT نام دارد. به زبان ساده، هر بخش از این معماری مسئولیت و نقش جداگانهای دارد.
نقش هر کدام از بخشهای موجود در جنگو به شرح زیر است.
- URL: درخواستهای کاربران را به بخش مناسب هدایت میکند.
- View: منطق اصلی را اجرا میکند که شامل پردازش و دریافت اطلاعات از پایگاه داده است.
- Model: دادهها و ساختار پایگاه داده را مدیریت میکند.
- Template: نتیجه را در قالب کدهای HTML به عنوان پاسخ نهایی به کاربر نشان میدهد.
این رویکرد ساختاریافته و منسجم در فریم ورک جنگو باعث میشود که توسعهدهندگان بدون دغدغه بتوانند بر پیادهسازی منطق اصلی وبسایت خود تمرکز کنند. در ادامه این بخش از نوشته به طور کامل به این سوال پاسخ خواهیم داد که کاربرد هر کدام از بخشهای ارائه شده در فریم ورک جنگو چیست و چگونه این بخشها به سادهتر شدن کار توسعهدهندگان کمک میکنند.

منظور از Model در فریم ورک جنگو چیست؟
در فریم ورک جنگو Model یک کلاس پایتون است که نحوه ذخیرهسازی اطلاعات در پایگاه داده را مشخص میکند. شرایطی را در نظر بگیرید که قصد ذخیرهسازی اطلاعات مربوط به محصولات یک فروشگاه اینترنتی را دارید. در این حالت به جای نوشتن دستورات SQL برای ایجاد و مدیریت جداول پایگاه داده کافی است که یک کلاس پایتون تعریف کنید. این کلاس مسئولیت ذخیرهسازی اطلاعات محصولات فروشگاه را برعهده خواهد داشت که همان Model در فریم ورک جنگو است.
Modelها در فریم ورک جنگو توسعهدهندگان را از نوشتن دستورات SQL بینیاز میکنند. توسعهدهندگان در فریم ورک جنگو تنها با نوشتن چند خط کد میتوانند به پایگاه داده دسترسی داشته باشند. جنگو با استفاده از ORM مدلها را به جداول پایگاه داده تبدیل میکند. مدلها در جنگو در فایلی به نامmodel.py ذخیره میشوند. قطعه کد زیر تعریف یک مدل در فریم ورک جنگو را نشان میدهد.
قطعه کد بالا یک جدول به نامProduct ایجاد میکند که دارای ستونهایی به نام name ،price و stock است. این ستونها به ترتیب نشان دهنده قیمت، نام و موجودی محصولات هستند. با استفاده از این مدل به سادگی میتوان دادهها را مدیریت کرد. بنابراین، مدلها در جنگو ابزار قدرتمندی برای تسهیل کار با پایگاه داده هستند.
منظور از View در فریم ورک جنگو چیست؟
View یک تابع یا متد پایتونی است که درخواستهای HTTP را به عنوان ورودی دریافت میکند. سپس، با Model ارتباط برقرار کرده و دادههای مورد نیاز را از پایگاه داده میخواند یا در صورت نیاز دادههای جدیدی را در پایگاه داده وارد میکند. در نهایت، بعد از انجام پردازشهای لازم اطلاعات نهایی را به Template ارسال میکند.
به زبان ساده، هنگامی که کاربر آدرس سایت را در مرورگر وارد میکند، درخواست او ابتدا به View ارسال میشود. سپس، View کارهای زیر را انجام میدهد.
- دریافت درخواست کاربر
- پردازش درخواست و دریافت اطلاعات مورد نیاز از پایگاه داده با استفاده از مدلها
- ایجاد پاسخ با رندر کردن یک صفحه HTML از قالبها (Templates) یا تولید پاسخی دیگر
Viewها در فریم ورک جنگو به طور معمول در فایلviews.py ذخیره میشوند.
منظور از Template در فریم ورک جنگو چیست؟
Template در فریم ورک جنگو یک فایل HTML است که ظاهر و ساختار صفحات وب را مشخص میکند. این فایل همانند یک قالب آماده عمل میکند که با دادههای مختلف پر میشود. به زبان ساده، در فایل Template ساختار کلی صفحه با استفاده از عناصر HTML، CSS و سایر موارد دیگر مشخص میشود. سپس، دادههای پویا از پایگاه داده دریافت شده و در قالبهای تعیین شده قرار میگیرند. Template به توسعهدهندگان امکان میدهد تا با ترکیب قالب ثابت HTML و دادههای متغیر صفحات وب جذابی را طراحی کنند.

جنگو از HTML استاندارد برای تعریف قالب Template و از تگهای مخصوص برای اضافه کردن منطق استفاده میکند. قطعه کد زیر یک Template بسیار ساده را نشان میدهد.
فایلهای Template مربوط به اپلیکیشنهای توسعه داده شده با فریم ورک جنگو در پوشهtemplates قرار میگیرند.
کاربرد URL در فریم ورک جنگو چیست؟
منظور از URL در فریم ورک جنگو همان آدرسی است که کاربر در مرورگر خود وارد میکند تا به یک صفحه خاص دسترسی پیدا کند. URLها در فریم ورک جنگو مسئولیت برقراری ارتباط بین درخواستهای کاربران و بخشهای مختلف کد را برعهده دارند. در واقع، URLها مشخص میکنند که وقتی کاربر یک آدرس خاص مانند/product را در مرورگر وارد میکند، کدام قسمت از کد یا همانView باید اجرا شود تا صفحه مورد نظر ساخته شود.
به زبان ساده، URL را میتوان همانند نقشه وبسایت در نظر گرفت که درخواستهای دریافتی را به توابع مرتبط هدایت میکند تا پاسخ مناسب به کاربر داده شود. از جمله مهمترین کاربردهای URL به موارد زیر میتوان اشاره کرد.
- هدایت درخواستها
- مسیریابی سایت
- استفاده از پارامترها
- تفکیک منطق از آدرسدهی
مدیریت URLها در فریم ورک جنگو در فایلی به نامurls.py انجام میشود.
مثالی از تعریف URL در فریم ورک جنگو
در ادامه برای درک بهتر مفهوم URL در جنگو یک مثال عملی آورده شده است. قطعه کد زیر نحوه تعریف URL در فریم ورک جنگو را نشان میدهد.
در مثال بالا هنگامی که کاربر آدرسhttp://yourdomain/hello/ را در مرورگر خود وارد میکند، جنگو درخواست را به تابعhello_view ارسال میکند که این تابع در فایلviews.py تعریف شده است. همانند مثال بالا امکان تعریف مسیرهای مختلف در فایلurls.py وجود دارد.
یادگیری پایتون با فرادرس
پایتون یکی از محبوبترین زبانهای برنامه نویسی در جهان است که کاربردهای گستردهای در صنایع مختلف دارد. این زبان برنامهنویسی بیشتر به دلیل سادگی، انعطافپذیری و کاربردهای متعدد محبوب شده است. پایتون با ارائه کتابخانهها و فریمورکهای قدرتمند در زمینههای مختلفی همچون توسعه وب، علم داده، یادگیری ماشین و هوش مصنوعی کاربرد دارد. این کاربردها در کنار سایر ویژگیهای پایتون سبب شده است که فرصتهای شغلی خوبی برای توسعهدهندگان پایتون وجود داشته باشد.
برای یادگیری پایتون همانند هر زبان برنامه نویسی دیگری باید ابتدا مفاهیم پایه برنامه نویسی نظیر متغیرها، انواع داده، توابع، ساختارهای شرطی و تکرار را یاد بگیرید. در ادامه نیز باید به سراغ یادگیری سینتکس زبان پایتون بروید. برای یادگیری سریع و عملی پایتون پیشنهاد میشود که از مجموعه فیلمهای آموزش مقدماتی تا پیشرفته پایتون فرادرس استفاده کنید که لینک آن در ادامه آورده شده است.
در این مجموعه آموزشهای متعددی برای زبان پایتون در سطوح مختلف منتشر شده است. علاوه بر این، آموزشهای پروژه محور و آموزشهای موضوعی خاصی همچون کار با پایگاه داده در پایتون، پردازش تصویر با پایتون، امنیت شبکه با پایتون و بسیاری عناوین دیگر در این مجموعه آموزشی قرار داده شده است. در ادامه تعدادی از آموزشهای پیشنهادی موجود در این مجموعه آورده شده است.

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