Menu
CoddyTech

Benannte URLs

Teil des Abschnitts Django-Grundlagen der Django-Journey von Coddy. Lektion 10 von 23.

Die Startseite sollte auf „Über uns“ verweisen. "/about/" in jeden Link einzutragen, funktioniert, bis sich die Adresse ändert – dann funktionieren alle Links nicht mehr. Gib stattdessen jeder Route einen Namen und erstelle die Adresse daraus. Die urls.py einer Shop-App:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]
app_name versieht die Namen mit einem Namespace: Der vollständige Name lautet "shop:cart", sodass zwei Apps jeweils ein home haben können. reverse() wandelt einen Namen wieder in eine Adresse um. Wenn die Shop-App unter shop/ eingebunden ist:
reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

Ändere "cart/" in "basket/", und alle aus dem Namen erstellten Adressen werden entsprechend angepasst.

challenge icon

Aufgabe

Einfach
  • Lege in menu/urls.py app_name = "menu" fest und benenne jede Route: home, about, hours, contact, table, drink, order.
  • Füge auf der Startseite nach dem Absatz einen Link <a href="...">About us</a> hinzu, dessen Adresse von reverse("menu:about") stammt.

Klicke auf Ausführen und dann auf Über uns.

Probier es selbst

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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Django-Grundlagen

Übe selbstständig: Django-Playground