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 sua própria página. Uma rota pode corresponder a todos eles quando parte dela é um conversor de caminho. Um calendário pode usar dois:
path("calendar/<int:year>/<int:month>/", views.calendar),A parte entre colchetes angulares é um conversor: um tipo, dois-pontos e um nome. int corresponde a um número inteiro e o converte em um int do Python. A view recebe cada valor como um argumento com esse 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/, retorna 404 e a view nunca é executada.
Desafio
FácilDê a cada mesa sua própria página:
- em
menu/urls.py, uma rota que corresponda a/table/5/,/table/12/e a qualquer outro número inteiro; - em
menu/views.py, uma viewtableque retorne<h1>Table 5</h1>para a mesa 5, e assim por diante.
/table/abc/ retorna 404. Pressione Run: a prévia abre /table/5/.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