Convertisseurs de chemin
Fait partie de la section Les bases de Django du Journey Django de Coddy. Leçon 6 sur 23.
Chaque table du café possède un code QR, et chaque code a besoin de sa propre page. Une route peut tous les faire correspondre lorsqu’une partie de celle-ci est un convertisseur de chemin. Un calendrier pourrait en utiliser deux :
path("calendar/<int:year>/<int:month>/", views.calendar),La partie entre chevrons est un convertisseur : un type, deux-points, un nom. int correspond à un nombre entier et le transforme en int Python. La vue reçoit chaque valeur comme argument portant ce nom :
def calendar(request, year, month):
return HttpResponse(f"<h2>{month} / {year}</h2>")Pour /calendar/2026/3/, Django appelle calendar(request, year=2026, month=3). Une adresse à laquelle le convertisseur ne correspond pas, comme /calendar/next/3/, renvoie une erreur 404 « Page introuvable », et la vue ne s’exécute jamais.
Défi
FacileDonnez à chaque table sa propre page.
- Dans
menu/urls.py, ajoutez une route qui correspond à/table/5/,/table/12/et à tout autre nombre entier. Faites-la pointer versviews.table. - Dans
menu/views.py, écrivez une vuetable. Son deuxième paramètre porte le nom du convertisseur. Elle renvoie<h1>Table 5</h1>pour la table 5.
Ouvrez /table/12/ : vous voyez Table 12.
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),
]
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