Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

Dale 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 vista table que 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

Practica por tu cuenta: Playground de Django