Menu
CoddyTech

Bộ chuyển đổi đường dẫn

Thuộc phần Kiến thức cơ bản về Django trong hành trình Django của Coddy. Bài học 6 trên 23.

Mỗi chiếc bàn trong quán cà phê đều có mã QR, và mỗi mã cần có trang riêng. Một route có thể khớp với tất cả các mã nếu một phần của nó là bộ chuyển đổi đường dẫn. Lịch có thể dùng hai bộ chuyển đổi:

path("calendar/<int:year>/<int:month>/", views.calendar),

Phần nằm trong dấu ngoặc nhọn là một bộ chuyển đổi: kiểu, dấu hai chấm, tên. int khớp với một số nguyên và chuyển nó thành int của Python. Hàm view nhận từng giá trị dưới dạng đối số có tên tương ứng:

def calendar(request, year, month):
    return HttpResponse(f"<h2>{month} / {year}</h2>")

Với /calendar/2026/3/, Django gọi calendar(request, year=2026, month=3). Một địa chỉ mà bộ chuyển đổi không khớp, như /calendar/next/3/, sẽ trả về lỗi 404, không tìm thấy trang, và hàm view không chạy.

challenge icon

Thử thách

Dễ

Tạo một trang riêng cho mỗi bàn.

  1. Trong menu/urls.py, thêm một tuyến khớp với /table/5/, /table/12/ và mọi số nguyên khác. Trỏ tuyến đó đến views.table.
  2. Trong menu/views.py, viết một view table. Tham số thứ hai của view có tên của bộ chuyển đổi. View trả về <h1>Table 5</h1> cho bàn số 5.

Mở /table/12/: bạn sẽ thấy Table 12.

Tự làm thử

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
]

Tất cả bài học trong Kiến thức cơ bản về Django

Tự luyện tập: Playground Django