Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Crie uma página para cada mesa.

  1. Em menu/urls.py, adicione uma rota que corresponda a /table/5/, /table/12/ e qualquer outro número inteiro. Aponte-a para views.table.
  2. Em menu/views.py, escreva uma view table. 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

Pratique por conta própria: Playground de Django