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.
Défi
Facile- Dans
menu/urls.py, définissezapp_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 dereverse("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),
]
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
1Votre premier site Django
Bonjour, DjangoUne deuxième page4Mises en page et fichiers statiques
Héritage des templatesUn titre pour chaque page2URLs dynamiques
Convertisseurs de cheminUne page pour chaque boissonChaînes de requêteLever Http404Entraînez-vous par vous-même : Playground Django