РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pydjPmRtIc 18 of 187 menu

Вложенные маршруты в Django

Когда маршрутов становится много, их неудобно держать все в config/urls.py. Обычно у каждого приложения свой файл urls.py, а в проекте его подключают через include.

Давайте создадим такой файл в приложении main. В нем опишем маршруты приложения:

from django.urls import path from . import views urlpatterns = [ path('', views.index), path('about/', views.about), path('contact/', views.contact), ]

Теперь давайте подключим эти маршруты в config/urls.py с общим префиксом, например main/:

from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('main/', include('main.urls')), ]

Префикс main/ Django добавит сам ко всем маршрутам приложения. Получатся адреса /main/, /main/about/ и /main/contact/.

Если префикс не нужен, давайте подключим маршруты приложения на корень сайта:

urlpatterns = [ path('admin/', admin.site.urls), path('', include('main.urls')), ]

Давайте посмотрим, как сгруппировать часть маршрутов с общим началом. Например, все адреса магазина:

from django.urls import path from . import views shop_patterns = [ path('', views.shop_home), path('products/', views.product_list), path('cart/', views.cart_view), ] urlpatterns = [ path('shop/', include(shop_patterns)), ]

Вынесите маршруты приложения main в файл main/urls.py и подключите их через include.

В файле urls.py объявлены следующие маршруты для магазина:

urlpatterns = [ path('shop/', views.shop_home), path('shop/products/', views.product_list), path('shop/cart/', views.cart_view), path('shop/checkout/', views.checkout), ]

Сделайте для них представления, объединив маршруты через include с общим префиксом shop/.

Сделайте то же для маршрутов блога: список, пост по id, комментарии и лайк. Объедините их как вложенные.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить