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 renvoyer vers la page À propos. Saisir "/about/" dans chaque lien fonctionne jusqu’à ce que l’adresse change, puis tous les liens cessent de fonctionner. 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", ainsi deux applications peuvent chacune avoir une home. reverse() transforme un nom en adresse. Avec l’application shop incluse sous shop/ :
reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

Remplace "cart/" par "basket/" et toutes les adresses construites à partir du nom suivront le changement.

challenge icon

Défi

Facile
  • Dans menu/urls.py, définissez app_name = "menu" et nommez chaque route : home, about, hours, contact, table, drink, order.
  • Sur la page d’accueil, après le paragraphe, ajoutez un lien <a href="...">About us</a> dont l’adresse provient de reverse("menu:about").

Cliquez sur Exécuter, puis cliquez sur À propos.

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