Convertitori di percorso
Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 6 di 23.
Ogni tavolo del bar ha un codice QR e ogni codice ha bisogno di una propria pagina. Un'unica route può corrispondere a tutti quando una sua parte è un convertitore di percorso. Un calendario potrebbe usarne due:
path("calendar/<int:year>/<int:month>/", views.calendar),La parte tra parentesi angolari è un convertitore: un tipo, due punti, un nome. int corrisponde a un numero intero e lo converte in un int Python. La view riceve ogni valore come argomento con quel nome:
def calendar(request, year, month):
return HttpResponse(f"<h2>{month} / {year}</h2>")Per /calendar/2026/3/, Django chiama calendar(request, year=2026, month=3). Un indirizzo che il convertitore non riconosce, come /calendar/next/3/, restituisce un errore 404 Pagina non trovata e la view non viene mai eseguita.
Sfida
FacileDai a ogni tavolo una pagina tutta sua.
- In
menu/urls.py, aggiungi un percorso che corrisponda a/table/5/,/table/12/e a qualsiasi altro numero intero. Indirizzalo aviews.table. - In
menu/views.py, scrivi una vistatable. Il suo secondo parametro ha lo stesso nome del convertitore. Restituisce<h1>Table 5</h1>per il tavolo 5.
Apri /table/12/: vedrai il tavolo 12.
Provalo tu
from django.urls import path
from . import views
urlpatterns = [
path("", views.home),
path("about/", views.about),
path("hours/", views.hours),
path("contact/", views.contact),
]
Tutte le lezioni di Fondamenti di Django
4Layout e file statici
Ereditarietà dei templateUn titolo per ogni pagina2URL dinamici
Convertitori di percorsoUna pagina per ogni bevandaStringhe di queryGenerare Http404Esercitati da solo: Playground Django