آموزش جامع کار با URL ها در جنگو

django urls comprehensive guide
20 آبان 1403

کار با URLها در جنگو بخش مهمی از توسعه وب اپلیکیشن‌های داینامیک محسوب می‌شود. به عبارتی، مسیریابی یا Routing در جنگو به ما کمک می‌کند که درخواست‌های مختلف کاربر را به نمایه‌های مناسب هدایت کنیم. این کار با تنظیم آدرس‌های وبی (URLs) که به نمایه‌ها یا توابع خاصی در اپلیکیشن شما اشاره دارند، انجام می‌شود.

همچنین، می‌توانیم از URLهای پارامتریک استفاده کنیم تا اطلاعات بیشتری را از طریق URLها ارسال کنیم. به عنوان مثال، فرض کنید یک وبسایت خبری داریم و می‌خواهیم مقالات را روی سایت نمایش دهیم، برای انتخاب مقاله خاص در URL از شناسه آن استفاده می‌کنیم.

در جنگو، ابتدا باید URLهای خود را در فایل urls.py تعریف کنید. این فایل شامل مجموعه‌ای از الگوهای URL است که هر یک به یک view مرتبط می‌شوند. برای استفاده درست از این قابلیت، نیاز داریم که درک خوبی از متدهای تنظیم URL و استفاده از متغیرها داشته باشیم.

اجازه دهید تا به یک مثال ساده بپردازیم و چگونگی تنظیم URLها و هدایت آن‌ها به نمایه‌های مورد نظر در جنگو را بررسی کنیم. در ادامه، مثالی از فایل urls.py و یک نمایه view آورده شده است:


from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'),
path('articles/', views.articles_list, name='articles_list'),
path('articles/<int:article_id>/', views.article_detail, name='article_detail')
]

شرح خط به خط کد

from django.urls import path
این خط ماژول path را از django.urls وارد می‌کند که برای تعریف مسیر‌های URL مورد استفاده است.
from . import views
این خط ماژول views را وارد می‌کند که شامل تمام نمایه‌هایی است که می‌خواهیم به آن‌ها از طریق URL دسترسی پیدا کنیم.
urlpatterns = []
این خط لیستی از الگوهای URL تعریف می‌کند که هر کدام به یک view در اپلیکیشن متصل می‌شود.
path('', views.index, name='index')
این خط URL مسیر اصلی را تعریف می‌کند که به نمایه index هدایت می‌شود.
path('articles/', views.articles_list, name='articles_list')
در اینجا URLی برای لیست مقالات تعریف شده است که به نمایه articles_list هدایت می‌شود.
path('articles/<int:article_id>/', views.article_detail, name='article_detail')
این خط یک URL پارامتریک برای مشاهده جزئیات یک مقاله خاص تعریف می‌کند که شناسه مقاله از طریق URL دریافت می‌شود.

سوالات متداول

؟

چگونه می‌توانم یک URL جدید در جنگو تعریف کنم؟

؟

URL پارامتریک چیست و چگونه کار می‌کند؟

؟

چه تفاوتی بین static و dynamic URLs در جنگو وجود دارد؟