جنگو بر اساس معماری MVT (مدل-نما-الگو) طراحی شده است. MVT یک الگوی طراحی نرمافزار برای توسعه برنامههای وب است.
ساختار MVT شامل سه بخش زیر است:
مدل (Model): مدل به عنوان رابط دادههای شما عمل میکند و مسئول نگهداری دادهها است. این بخش ساختار منطقی دادهها در پشت کل برنامه است و معمولاً توسط یک پایگاه داده (عموماً پایگاههای داده رابطهای مانند MySQL، Postgres) نمایش داده میشود.
نما (View): نما همان رابط کاربری است — چیزی که هنگام رندر کردن یک وبسایت در مرورگر خود مشاهده میکنید. این بخش توسط فایلهای HTML/CSS/Javascript و Jinja نمایش داده میشود.
الگو (Template): الگو شامل بخشهای ثابت خروجی HTML مورد نظر است به همراه چندین دستورات ویژه که توصیف میکنند چگونه محتوای پویا وارد خواهد شد.
ساختار پروژه جنگو:
هنگامی که یک پروژه جنگو (Django) مقداردهی اولیه میشود، به طور پیشفرض فایلهای اساسی مانند manage.py، view.py و غیره را شامل میشود. یک ساختار ساده پروژه برای ایجاد یک برنامه تکصفحهای کافی است. در اینجا فایلهای اصلی و توضیحات آنها آورده شده است. داخل پوشه raadino_site (پوشه پروژه) فایلهای زیر وجود خواهد داشت:
- manage.py: یک اسکریپت فرمان خطی برای تعامل با پروژه جنگو شما. از آن برای اجرای دستورات مختلف مانند اجرای سرور توسعه، مهاجرتهای پایگاه داده، و ایجاد اپلیکیشنها استفاده میشود.
برای آشنا شدن با دستورات این فرمان میتوانید در ترمینال کد زیر را اجرا کنید.
python manage.py help
- init_.py : یک فایل خالی که به پایتون میگوید که این پوشه باید به عنوان یک ماژول در نظر گرفته شود. این فایل در تمام دایرکتوریهای جنگو وجود دارد.
- settings.py : این فایل شامل تنظیمات و پیکربندیهای پروژه است، مانند تنظیمات پایگاه داده، تنظیمات میانافزار (middleware)، و مسیرهای فایلهای استاتیک.
- urls.py : این فایل برای مدیریت URLهای پروژه استفاده میشود. شامل الگوهای URL است که مشخص میکند کدام نما (View) برای هر URL نمایش داده شود.
- wsgi.py : این فایل یک نقطه ورود برای سرورهای وب سازگار با WSGI است. از آن برای استقرار برنامه در سرور استفاده میشود.
- asgi.py : مشابه wsgi.py، اما برای استفاده در سرورهایی که از ASGI پشتیبانی میکنند و برای استقرار برنامههایی که به قابلیتهای ارتباطی بلادرنگ مانند وبسوکتها نیاز دارند، استفاده میشوند.
- views.py : این فایل جایی است که نماهای (View) پروژه تعریف میشود. نماها توابع یا کلاسهایی هستند که درخواستهای HTTP را پردازش کرده و پاسخ مناسب را تولید میکنند.
این ساختار پایهای یک پروژه جنگو است و میتواند بسته به نیاز پروژه گسترش یابد.
آیا آمادهاید تا مهارتهای توسعه وب خود را از سطح پایه به تخصص پیشرفته ارتقا دهید؟ آموزشهای قرار گرفته در سایت Raadino را دنبال کنید و اگر سوالی دارید حتما در قسمت نظرات با ما در اشتراک بگذارید.
ورود و ثبت نام برای ارسال نظر وارد شوید
¶ اگر بخوایم ماژول رو تعریف کنیم:
"ماژول در واقع یک ابزار کامل یا ابزار کمکی برای مدیریت یا نمایش یا سرویس دهی میباشد که به صورت یک بسته ارائه شده که میتوان از طریق پنل مدیریت نصب و آن ابزار را برای وب سایت خودتان فعال نمایید."
اوکیه؟
¶ بله حدودا یه همچین چیزی میتوان تعبیر کرد
ورود و ثبت نام برای ارسال نظر وارد شوید