Menu
CoddyTech

URLs nommées

Fait partie de la section Les bases de Django du Journey Django de Coddy. Leçon 10 sur 23.

La page d’accueil doit contenir un lien vers À propos. Saisir "/about/" dans chaque lien fonctionne jusqu’à ce que l’adresse change, puis tous les liens ne fonctionnent plus. Donne plutôt un nom à chaque route et construis l’adresse à partir de ce nom. Le fichier urls.py d’une application de boutique :

app_name = "shop"

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

app_name place les noms dans un espace de noms : le nom complet est "shop:cart", ce qui permet à deux applications d’avoir chacune une home. reverse() transforme un nom en adresse. Avec l’application de boutique incluse sous shop/ :

from django.urls import reverse

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

Appelle reverse() dans une vue. En haut de views.py, cette fonction s’exécute avant que les routes existent.

Remplace "cart/" par "basket/" et toutes les adresses générées à partir du nom seront mises à jour.

challenge icon

Défi

Facile

Relie la page d’accueil à la page À propos par son nom.

  1. Dans menu/urls.py, définis app_name sur "menu" et nomme chaque route d’après sa vue : home, about, hours, contact, table, drink, order.
  2. Dans menu/views.py, importe reverse depuis django.urls. Dans home, ajoute un lien About us dont le href est reverse("menu:about").

Clique sur About us : la page À propos s’ouvre.

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases de Django

Entraînez-vous par vous-même : Playground Django