محوّلات المسارات
جزء من قسم أساسيات Django في رحلة Django على Coddy. الدرس 6 من 23.
يوجد رمز QR على كل طاولة في المقهى، ويحتاج كل رمز إلى صفحته الخاصة. يمكن لمسار واحد أن يطابقها جميعًا عندما يكون جزء منه محوّل مسار. قد يستخدم التقويم اثنين:
path("calendar/<int:year>/<int:month>/", views.calendar),الجزء الموجود بين علامتي الزاوية هو محوّل: نوع، ونقطتان، واسم. يطابق int عددًا صحيحًا ويحوّله إلى int في Python. تتلقى دالة العرض كل قيمة وسيطًا بالاسم نفسه:
def calendar(request, year, month):
return HttpResponse(f"<h2>{month} / {year}</h2>")بالنسبة إلى /calendar/2026/3/، يستدعي Django الدالة calendar(request, year=2026, month=3). أما العنوان الذي لا يطابقه المحوّل، مثل /calendar/next/3/، فيُرجع 404 ولا تُشغَّل دالة العرض مطلقًا.
التحدي
سهلامنح كل طاولة صفحتها:
- في
menu/urls.py، مسار واحد يطابق/table/5/و/table/12/وأي عدد صحيح آخر؛ - في
menu/views.py، دالة عرضtableتُرجع<h1>Table 5</h1>للطاولة 5، وهكذا.
/table/abc/ يُرجع 404. اضغط على Run: تفتح المعاينة /table/5/.جرّب بنفسك
from django.urls import path
from . import views
urlpatterns = [
path("", views.home),
path("about/", views.about),
path("hours/", views.hours),
path("contact/", views.contact),
]
جميع دروس أساسيات Django
تدرّب بنفسك: Playground لـ Django