Menu
CoddyTech

Проекты и приложения

Часть раздела Основы Django путешествия по Django на Coddy. Урок 4 из 23.

В приложении menu появилась новая страница «Часы работы», указанная в menu/urls.py, но по адресу /hours/ отображается страница не найдена, потому что проект вообще не читает этот файл.

Проект Django — это весь сайт: в mysite/ находятся его настройки и основной URLconf. Приложение — это часть сайта со своими представлениями и URL-адресами, здесь это menu/. На компьютере команда python manage.py startapp menu создаёт приложение.

Проект передаёт часть адреса приложению с помощью include():

from django.urls import include, path

urlpatterns = [
    path("shop/", include("shop.urls")),
]

Django сопоставляет начало адреса — shop/, а затем передаёт оставшуюся часть в shop/urls.py. Тогда маршрут "cart/" из этого файла доступен по адресу /shop/cart/. Префиксом может быть любой текст, даже пустой.

challenge icon

Задание

Легко

Настрой проект так, чтобы он передавал обработку адресов приложению меню.

  1. В mysite/urls.py импортируй include рядом с path.
  2. Замени два маршрута одним маршрутом, который подключает menu.urls. Укажи для него пустой префикс "", чтобы / и /about/ остались там же.

Открой /hours/ и /about/: оба по-прежнему работают.

Попробуйте сами

from django.urls import path

from menu import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
]

Все уроки раздела Основы Django

Потренируйтесь самостоятельно: Песочница Django