django-debug-toolbar — инструмент для разработки, который показывает технические данные о текущем Django-запросе: SQL-запросы, время выполнения, headers, cache и шаблоны. Он помогает находить медленные запросы, N+1 и лишние обращения к базе.
Что такое django-debug-toolbar? Как профилировать запросы?
Подробный ответ
Что показывает Debug Toolbar
Django Debug Toolbar добавляет в страницу панель отладки. Среди прочего она показывает количество SQL-запросов, текст SQL, длительность запросов, использованные шаблоны, cache operations, settings и headers.
Базовое подключение
Пакет устанавливают в development-зависимости, добавляют в INSTALLED_APPS, подключают middleware и задают INTERNAL_IPS. Точная конфигурация зависит от окружения и версии пакета.
INSTALLED_APPS = [
# ...
'debug_toolbar',
]
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
INTERNAL_IPS = ['127.0.0.1']Профилирование SQL
Для поиска проблем смотрят SQL panel: число запросов, одинаковые повторяющиеся запросы, длительность каждого запроса и суммарное время. Повторяющиеся запросы при выводе списка часто указывают на N+1; тогда проверяют необходимость select_related() или prefetch_related().
Другие способы
Дополнительно применяют логирование SQL, QuerySet.explain() для плана выполнения запроса, профилировщики Python и APM-инструменты. В production Debug Toolbar обычно не включают: для него используют безопасные средства мониторинга и трассировки.
Как ответить на собеседовании
django-debug-toolbar использую в development для анализа SQL, времени выполнения, шаблонов и кэша. При профилировании сначала измеряю число и длительность запросов, нахожу N+1 или медленные SQL, затем оптимизирую QuerySet и повторно проверяю результат.
Оцени свой прогресс