URLs nomeadas
Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 10 de 23.
A página inicial deve ter um link para Sobre. Digitar "/about/" em cada link funciona até que o endereço mude; então, todos os links deixam de funcionar. Em vez disso, dê um nome a cada rota e construa o endereço a partir dele. O urls.py de um app de loja:
app_name = "shop"
urlpatterns = [
path("cart/", views.cart, name="cart"),
path("products/<slug:slug>/", views.product, name="product"),
]app_name coloca os nomes em um namespace: o nome completo é "shop:cart", então dois apps podem ter cada um um home. reverse() transforma um nome de volta em um endereço. Com a loja incluída sob shop/:reverse("shop:cart") # "/shop/cart/"
reverse("shop:product", args=["mug"]) # "/shop/products/mug/"Altere "cart/" para "basket/" e todos os endereços construídos a partir do nome acompanharão a mudança.
Desafio
Fácil- Em
menu/urls.py, definaapp_name = "menu"e dê um nome a cada rota:home,about,hours,contact,table,drink,order. - Na página inicial, depois do parágrafo, adicione um link
<a href="...">About us</a>cujo endereço venha dereverse("menu:about").
Clique em Executar e depois em About us.
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),
path("table/<int:number>/", views.table),
path("drinks/<slug:slug>/", views.drink),
path("order/", views.order),
]
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