URL con nome
Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 10 di 23.
La pagina iniziale dovrebbe rimandare alla pagina Informazioni. Scrivere "/about/" in ogni collegamento funziona finché l’indirizzo non cambia; a quel punto, tutti i collegamenti si rompono. Assegna invece un nome a ogni route e ricava l’indirizzo da quel nome. Il file urls.py di un’app di negozio:
app_name = "shop"
urlpatterns = [
path("cart/", views.cart, name="cart"),
path("products/<slug:slug>/", views.product, name="product"),
]app_name inserisce i nomi in uno spazio dei nomi: il nome completo è "shop:cart", quindi due app possono avere ciascuna una home. reverse() trasforma un nome di nuovo in un indirizzo. Se l’app del negozio è inclusa sotto shop/:reverse("shop:cart") # "/shop/cart/"
reverse("shop:product", args=["mug"]) # "/shop/products/mug/"Modifica "cart/" in "basket/" e tutti gli indirizzi ricavati dal nome si aggiorneranno di conseguenza.
Sfida
Facile- In
menu/urls.py, impostaapp_name = "menu"e assegna un nome a ogni route:home,about,hours,contact,table,drink,order. - Nella pagina iniziale, dopo il paragrafo, aggiungi un link
<a href="...">About us</a>il cui indirizzo proviene dareverse("menu:about").
Premi Esegui e fai clic su About us.
Provalo tu
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),
]
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di Django
4Layout e file statici
Ereditarietà dei templateUn titolo per ogni pagina2URL dinamici
Convertitori di percorsoUna pagina per ogni bevandaStringhe di queryGenerare Http404Esercitati da solo: Playground Django