Menu
CoddyTech

Adlandırılmış URL'ler

Coddy'nin Django Journey'sinin Django Temelleri bölümünün bir parçası. Ders 10 / 23.

Ana sayfa, Hakkında sayfasına bağlantı vermelidir. Her bağlantıda "/about/" yazmak, adres değişene kadar işe yarar; sonra tüm bağlantılar bozulur. Bunun yerine her rotaya bir ad ver ve adresi bu addan oluştur. Bir mağaza uygulamasının urls.py dosyası:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]

app_name, adları bir ad alanına koyar: tam ad "shop:cart" olur; böylece iki uygulamanın da home adlı bir rotası olabilir. reverse(), bir adı yeniden adrese dönüştürür. shop/ altında eklenen mağaza uygulaması için:

from django.urls import reverse

reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

reverse() işlevini bir görünümün içinde çağır. views.py dosyasının en üstünde çağrılırsa rotalar oluşturulmadan önce çalışır.

"cart/" ifadesini "basket/" olarak değiştir; addan oluşturulan tüm adresler de buna göre değişir.

challenge icon

Görev

Kolay

Ana sayfayı, adına göre Hakkında sayfasına bağla.

  1. menu/urls.py içinde app_name değerini "menu" olarak ayarla ve her rotayı kendi görünümünün adıyla adlandır: home, about, hours, contact, table, drink, order.
  2. menu/views.py içinde reverse öğesini django.urls içinden içe aktar. home içinde, href değeri reverse("menu:about") olan bir About us bağlantısı ekle.

“About us” bağlantısına tıkla: Hakkında sayfası açılır.

Kendin dene

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),
]
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Django Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Django playground