Model-View-Controller
vs
Model-View-Template
📌 معماری MVC به طور گسترده میان فریمورک هایی وب مثل Ruby on Rails، Spring (Java)، Laravel (PHP)، ASP.NET (C#) استفاده می شه. تو این الگو سه چیز وجود داره. و چیزی که قبلا جنگو استفاده میکرد
مدل: مدیریت داده ها و منطق اصلی کسب و کار •
ویو(
view): داده ها رو از مدل در یک فرمت خاص رندر می کند •
کنترلر: ورودی کاربر رو می پذیره و منطق خاص برنامه رو اجرا می کنه
تو این الگو، کنترلر وظیفه مسیریابی درخواستها به ویو ها و مدیریت منطق برنامه رو بر عهده داره.
----------------------
جنگو الان از نسخه تقریبا جدیدش که
Mvt هست پیروی میکنه
📍
حالا MVT چیه؟•
مدل: داده ها و منطق اصلی کسب و کار را مدیریت می کنه•
ویو(
view): معلوم میکند که کدام داده برای کاربر ارسال می شود •
تمپلیت: داده ها رو به صورت HTML با CSS، جاوا اسکریپت و دارایی های استاتیک اختیاری ارائه می دهد •
پیکربندی URL: کامپوننت های عبارت منظم پیکربندی شده در یک View
🔍 وقتی که یک URL مثل
https://djangoproject.com رو تایپ می کنید، اولین چیزی که در پروژه جنگو اتفاق می افته یک الگوی URL (موجود در
urls.py) است که با آن مطابقت دارد. الگوی URL به یک ویو (
views.py) مرتبط است که داده های مدل (ذخیره شده در
models.py) و استایل از یک الگو (هر فایلی که به .html ختم می شود) رو ترکیب می کند. سپس view یک پاسخ HTTP رو به کاربر برمیگردونه
دقیقا مثل همین:
HTTP Request -> URL -> View -> Model and Template -> HTTP Response
"شاید یکم گیج کننده باشه، جلوتر احتمالا توضیحات بیشتری گذاشتم"
@Learrning_Python