Функция include

Функция include применяется в основном файле URL-конфигурации проекта и позволяет подключать маршруты из отдельных приложений или модулей. Это делает структуру URL-адресов чистой и масштабируемой, особенно в больших проектах. Принимает строку с путем к URL-конфигурации или список маршрутов.

Синтаксис

pythonfrom django.urls import path, include

urlpatterns = [
    path('prefix/', include('app.urls')),
]

Пример

Подключим URL-конфигурацию приложения 'blog' с префиксом 'blog/':

python# myproject/urls.py
from django.contrib import admin
from django.urls import path, include

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

Теперь все маршруты из приложения 'blog' будут доступны по адресам, начинающимся с 'blog/'.

Пример

Используем пространство имен для приложения, чтобы затем использовать функцию reverse:

python# myproject/urls.py
from django.urls import path, include

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

Теперь можно использовать reverse с пространством имен для генерации URL-адресов внутри приложения.

Пример

Включение списка маршрутов напрямую без отдельного файла urls.py:

python# myproject/urls.py
from django.urls import path, include
from . import views

app_patterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
]

urlpatterns = [
    path('pages/', include(app_patterns)),
]

Результат: маршруты 'pages/' и 'pages/about/' будут обрабатываться соответствующими представлениями.

Смотрите также

  • функция path,
    которая определяет маршрут с конвертерами
  • функция re_path,
    которая определяет маршрут с помощью регулярных выражений
  • функция reverse,
    которая генерирует URL-адрес по имени маршрута
  • класс as_view,
    который преобразует класс-представление в функцию для URL-конфигурации