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 cuando una de sus partes es un conversor de ruta. Un calendario podría usar dos:

path("calendar/<int:year>/<int:month>/", views.calendar),

La parte entre corchetes angulares es un conversor: 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 que el conversor no reconoce, como /calendar/next/3/, devuelve un error 404, Página no encontrada, y la vista nunca se ejecuta.

challenge icon

Desafío

Fácil

Dale a cada mesa su propia página.

  1. En menu/urls.py, añade una ruta que coincida con /table/5/, /table/12/ y cualquier otro número entero. Dirígela a views.table.
  2. En menu/views.py, escribe una vista table. Su segundo parámetro tiene el nombre del conversor. Devuelve <h1>Table 5</h1> para la mesa 5.

Abre /table/12/: verás la mesa 12.

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