Uma página para cada bebida
Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 7 de 23.
As bebidas do café agora ficam em DRINKS, um dicionário em menu/views.py. Suas chaves, como flat-white, são slugs: palavras em minúsculas unidas por hífens, feitas para aparecer em uma URL.
O conversor slug corresponde a letras, dígitos, hífens e sublinhados. Aqui, ele dá a cada membro da equipe uma página, consultada em um dicionário:
path("team/<slug:handle>/", views.team_member),
def team_member(request, handle):
person = STAFF[handle]
return HttpResponse(f"<h2>{person['role']}</h2>")Para /team/maya-cohen/, a view recebe handle="maya-cohen" e o usa como chave. Uma rota e uma view atendem ao dicionário inteiro: uma nova entrada ganha sua página sem precisar de código novo.
Desafio
FácilCrie uma página para cada bebida em DRINKS em /drinks/ mais sua chave:
- uma rota que corresponda a
/drinks/latte/,/drinks/flat-white/e a todas as outras chaves; - uma view
drinkque mostre o nome da bebida em um<h1>e, em seguida, sua descrição em um<p>.
Pressione Executar: a prévia abre /drinks/latte/.
Experimente você mesmo
from django.http import HttpResponse
DRINKS = {
"espresso": {"name": "Espresso", "price": 2.5, "description": "A short, strong shot of coffee."},
"latte": {"name": "Latte", "price": 3.5, "description": "Espresso with lots of steamed milk."},
"flat-white": {"name": "Flat White", "price": 3.75, "description": "Espresso with a thin layer of silky milk."},
"hot-chocolate": {"name": "Hot Chocolate", "price": 3, "description": "Dark chocolate melted into warm milk."},
}
def home(request):
return HttpResponse("<h1>Welcome to Corner Café</h1><p>Fresh coffee and cake every day.</p>")
def about(request):
return HttpResponse("Corner Café opened in 2026.")
def hours(request):
return HttpResponse("Open every day from 8:00 to 18:00.")
def contact(request):
return HttpResponse("Write to us at hello@cornercafe.example.")
def table(request, number):
return HttpResponse(f"<h1>Table {number}</h1>")
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
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