Convertidores de ruta
Parte de la sección Conceptos básicos de Django del Journey de Django de Coddy. Lección 6 de 23.
Cada mesa de la cafetería tiene un código QR, y cada código necesita su propia página. Una ruta puede coincidir con todos ellos cuando una parte de ella es un convertidor de ruta. Un calendario podría usar dos:
path("calendar/<int:year>/<int:month>/", views.calendar),La parte entre corchetes angulares es un convertidor: un tipo, dos puntos y un nombre. int coincide con un número entero y lo convierte en un int de Python. La vista recibe cada valor como un argumento con ese nombre:
def calendar(request, year, month):
return HttpResponse(f"<h2>{month} / {year}</h2>")Para /calendar/2026/3/, Django llama a calendar(request, year=2026, month=3). Una dirección con la que el convertidor no coincide, como /calendar/next/3/, devuelve 404 y la vista nunca se ejecuta.
Desafío
FácilDale su propia página a cada mesa:
- en
menu/urls.py, una ruta que coincida con/table/5/,/table/12/y cualquier otro número entero; - en
menu/views.py, una vistatableque devuelva<h1>Table 5</h1>para la mesa 5, y así sucesivamente.
/table/abc/ da un error 404. Pulsa Run: la vista previa se abre en /table/5/.Pruébalo tú mismo
from django.urls import path
from . import views
urlpatterns = [
path("", views.home),
path("about/", views.about),
path("hours/", views.hours),
path("contact/", views.contact),
]
Todas las lecciones de Conceptos básicos de Django
1Tu primer sitio con Django
Hola, DjangoUna segunda página4Diseños y archivos estáticos
Herencia de plantillasUn título para cada página2URLs dinámicas
Convertidores de rutaUna página para cada bebidaCadenas de consultaLanzar Http404Practica por tu cuenta: Playground de Django