Menu
CoddyTech

URLs con nombre

Parte de la sección Conceptos básicos de Django del Journey de Django de Coddy. Lección 10 de 23.

La página de inicio debe tener un enlace a Acerca de. Escribir "/about/" en cada enlace funciona hasta que cambia la dirección, y entonces todos los enlaces dejan de funcionar. En su lugar, asigna un nombre a cada ruta y construye la dirección a partir de él. El archivo urls.py de una aplicación de tienda:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]
app_name coloca los nombres en un espacio de nombres: el nombre completo es "shop:cart", así que dos aplicaciones pueden tener cada una un home. reverse() convierte un nombre de nuevo en una dirección. Con la aplicación de tienda incluida bajo shop/:
reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

Cambia "cart/" por "basket/" y todas las direcciones construidas a partir del nombre se actualizarán.

challenge icon

Desafío

Fácil
  • En menu/urls.py, establece app_name = "menu" y asigna un nombre a cada ruta: home, about, hours, contact, table, drink, order.
  • En la página de inicio, después del párrafo, añade un enlace <a href="...">About us</a> cuya dirección provenga de reverse("menu:about").

Pulsa Ejecutar y haz clic en Sobre nosotros.

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Conceptos básicos de Django

Practica por tu cuenta: Playground de Django