Именованные URL
Часть раздела Основы Django путешествия по Django на Coddy. Урок 10 из 23.
Главная страница должна содержать ссылку на страницу «О нас». Вставлять "/about/" в каждую ссылку работает до тех пор, пока адрес не изменится, а затем все ссылки перестанут работать. Вместо этого задайте каждому маршруту имя и формируйте адрес на его основе. Файл urls.py приложения магазина:
app_name = "shop"
urlpatterns = [
path("cart/", views.cart, name="cart"),
path("products/<slug:slug>/", views.product, name="product"),
]app_name помещает имена в пространство имён: полное имя — "shop:cart", поэтому в двух приложениях может быть по маршруту с именем home. reverse() преобразует имя обратно в адрес. Если подключить магазин по адресу shop/:reverse("shop:cart") # "/shop/cart/"
reverse("shop:product", args=["mug"]) # "/shop/products/mug/"Измените "cart/" на "basket/", и все адреса, сформированные на основе имени, обновятся.
Задание
Легко- В
menu/urls.pyзадайтеapp_name = "menu"и присвойте имена всем маршрутам:home,about,hours,contact,table,drink,order. - На главной странице после абзаца добавьте ссылку
<a href="...">About us</a>, адрес которой берётся изreverse("menu:about").
Нажмите Запустить и нажмите «О нас».
Попробуйте сами
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),
]
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы Django
1Ваш первый сайт на Django
Привет, DjangoВторая страница4Макеты и статические файлы
Наследование шаблоновЗаголовок для каждой страницы2Динамические URL
Конвертеры путейСтраница для каждого напиткаСтроки запросаВыбрасывание Http404Потренируйтесь самостоятельно: Песочница Django