Функция include
Функция include применяется в основном файле URL-конфигурации проекта и позволяет подключать маршруты из отдельных приложений или модулей. Это делает структуру URL-адресов чистой и масштабируемой, особенно в больших проектах. Принимает строку с путем к URL-конфигурации или список маршрутов.
Синтаксис
from django.urls import path, include
urlpatterns = [
path('prefix/', include('app.urls')),
]
Пример
Подключим URL-конфигурацию приложения 'blog' с префиксом 'blog/':
# 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:
# myproject/urls.py
from django.urls import path, include
urlpatterns = [
path('shop/', include(('shop.urls', 'shop'), namespace='shop')),
]
Теперь можно использовать reverse с пространством имен для генерации URL-адресов внутри приложения.
Пример
Включение списка маршрутов напрямую без отдельного файла urls.py:
# 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/' будут обрабатываться соответствующими представлениями.