Menu
CoddyTech

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.

challenge icon

Défi

Facile

Donnez à chaque table sa propre page.

  1. Dans menu/urls.py, ajoutez une route qui correspond à /table/5/, /table/12/ et à tout autre nombre entier. Faites-la pointer vers views.table.
  2. Dans menu/views.py, écrivez une vue table. 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

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