Для чего используется функция include в файлах urls.py Django

Ответ

Функция include() в Django позволяет делегировать обработку части URL-адресов другому модулю URL-конфигурации (другому файлу urls.py). Это основной способ организации модульной и масштабируемой маршрутизации в проекте.

Основная цель — декомпозиция. Вместо одного огромного файла urls.py маршруты каждого приложения (blog, shop и т.д.) хранятся в собственном файле urls.py, а корневой urls.py просто подключает их.

Пример:

  1. Корневой myproject/urls.py:

    from django.urls import path, include
    from django.contrib import admin
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        # Все URL, начинающиеся с 'blog/', будут переданы в 'blog.urls'
        path('blog/', include('blog.urls')),
    ]
  2. Файл blog/urls.py приложения:

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.post_list, name='post_list'),
        path('<int:pk>/', views.post_detail, name='post_detail'),
    ]

В результате URL /blog/ будет обработан представлением post_list, а /blog/5/ — представлением post_detail.

Преимущества:

  • Модульность: Каждое приложение управляет своими URL-адресами.
  • Переиспользуемость: Приложение с его URL-ами легко перенести в другой проект.
  • Читаемость: Код становится чище и проще для навигации.