URL có tê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 10 trên 23.
Trang chủ nên liên kết đến trang Giới thiệu. Nhập "/about/" vào mọi liên kết sẽ hoạt động cho đến khi địa chỉ thay đổi, rồi mọi liên kết đều hỏng. Thay vào đó, hãy đặt tên cho từng tuyến đường và tạo địa chỉ từ tên đó. Tệp urls.py của ứng dụng shop:
app_name = "shop"
urlpatterns = [
path("cart/", views.cart, name="cart"),
path("products/<slug:slug>/", views.product, name="product"),
]app_name đặt các tên trong một không gian tên: tên đầy đủ là "shop:cart", nhờ đó hai ứng dụng có thể cùng có một home. reverse() chuyển tên thành địa chỉ. Khi ứng dụng shop được thêm vào dưới shop/:
from django.urls import reverse
reverse("shop:cart") # "/shop/cart/"
reverse("shop:product", args=["mug"]) # "/shop/products/mug/"Gọi reverse() bên trong một view. Ở đầu tệp views.py, hàm này chạy trước khi các tuyến đường tồn tại.
Đổi "cart/" thành "basket/" và mọi địa chỉ được tạo từ tên đó cũng sẽ thay đổi theo.
Thử thách
DễLiên kết trang chủ với trang Giới thiệu bằng tên.
- Trong
menu/urls.py, đặtapp_namethành"menu"và đặt tên cho từng tuyến theo tên hàm xử lý:home,about,hours,contact,table,drink,order. - Trong
menu/views.py, nhậpreversetừdjango.urls. Tronghome, thêm một liên kếtAbout uscóhreflàreverse("menu:about").
Nhấp vào About us: trang Giới thiệu sẽ mở ra.
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),
path("table/<int:number>/", views.table),
path("drinks/<slug:slug>/", views.drink),
path("order/", views.order),
]
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản về Django
1Trang Django đầu tiên của bạn
Xin chào, DjangoTrang thứ haiTự luyện tập: Playground Django