کار با 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 دریافت میشود.