Conversores de caminho
Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 6 de 23.
Cada mesa do café tem um código QR, e cada código precisa da própria página. Uma rota pode corresponder a todos eles quando parte dela é um conversor de caminho. Um calendário poderia usar dois:
path("calendar/<int:year>/<int:month>/", views.calendar),A parte entre os sinais de menor e maior é um conversor: um tipo, dois-pontos e um nome. int corresponde a um número inteiro e o transforma em um int do Python. A view recebe cada valor como um argumento com aquele nome:
def calendar(request, year, month):
return HttpResponse(f"<h2>{month} / {year}</h2>")Para /calendar/2026/3/, o Django chama calendar(request, year=2026, month=3). Um endereço que o conversor não corresponde, como /calendar/next/3/, resulta em um erro 404 Página não encontrada, e a view nunca é executada.
Desafio
FácilCrie uma página para cada mesa.
- Em
menu/urls.py, adicione uma rota que corresponda a/table/5/,/table/12/e qualquer outro número inteiro. Aponte-a paraviews.table. - Em
menu/views.py, escreva uma viewtable. O segundo parâmetro dela tem o nome do conversor. Ela retorna<h1>Table 5</h1>para a mesa 5.
Abra /table/12/: você verá Table 12.
Experimente você mesmo
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 as lições de Fundamentos do Django
1Seu Primeiro Site com Django
Olá, DjangoUma Segunda Página4Layouts e Arquivos Estáticos
Herança de TemplatesUm Título para Cada Página2URLs Dinâmicas
Conversores de caminhoUma página para cada bebidaStrings de consultaGerando Http404Pratique por conta própria: Playground de Django