Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Dai a ogni tavolo una pagina tutta sua.

  1. In menu/urls.py, aggiungi un percorso che corrisponda a /table/5/, /table/12/ e a qualsiasi altro numero intero. Indirizzalo a views.table.
  2. In menu/views.py, scrivi una vista table. 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

Esercitati da solo: Playground Django