Menu
CoddyTech

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.

challenge icon

Desafio

Fácil
  • Em menu/urls.py, defina app_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 de reverse("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),
]
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Playground de Django