Отладка Django — добавление Django Debug Toolbar в проект

В этой статье мы поговорим о том, как можем выполнять отладку Django. Давайте рассмотрим важную технику, которая требуется в веб-разработке, а затем перейдем к добавлению библиотеки Debug Toolbar.

Что такое отладка

Независимо от профессионализма, каждый разработчик имеет дело с ошибками — это является частью работы. Отладка ошибок — непростая задача; изначально много времени занимает процесс обнаружения ошибки и ее устранения. Следовательно, каждый разработчик должен знать как устранять ошибки.

В Django, процесс отладки можно сильно упростить. Вам только необходимо установить и подключить Django Debug Toolbar в приложение.

Теперь, когда мы знаем, почему отладка так важна, давайте настроим ее в проекте.

Подготовка приложения для демонстрации

Код примера есть в репозитории на GitLab.

Чтобы использовать панель инструментов отладки, нам нужен сайт. Если у вас есть свой проект, вы можете использовать его. В противном случае создайте новый и добавьте следующее представление и соответствующий путь.

Команды для создания нового приложения:

$ pip install django
$ django-admin startproject debug-tool
$ cd debug_tool
$ python manage.py startapp app
# app/views.py
from django.http import HttpResponse


def sample_view(request):
    html = '<body><h1>Django sample_view</h1><br><p>Отладка sample_view</p></body>'
    return HttpResponse(html)

Убедитесь в присутствии тега <body>. В противном случае инструмент отладчика не будет отображаться на страницах, шаблоны которых не имеют этого тега.

URL путь для кода будет:

# debug_tool/urls.py
from app import views as app_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sample/', app_views.sample_view),
]

Теперь вы сможете повторять за мной.

Django Debug Toolbar

Рассмотрим инструменты, которые представлены в панели:

  • Version: Предоставляет версию Django, которую мы используем.
  • Time: Сообщает время, затраченное на загрузку веб-страницы.
  • Setting: Показывает настройки страницы.
  • Request: Показывает все запросы — views, файлы, куки и т.д.
  • SQL: Список запросов к базе данных.
  • Static Files: Предоставляет информацию о статических файлах.
  • Templates: Предоставляет информацию о шаблонах.
  • Cache: Сообщает информацию о существующем кэш.
  • Loggin: Показывает количество зарегистрированных логов.

Установка Debug Toolbar в Django

Теперь установим библиотеку и настроим все необходимое для нее. Следуйте пошаговой инструкции:

1) Установка библиотеки

Для установки django-debug-toolbar, используем команду pip install. Запустите следующий код в терминале/оболочке ОС:

pip install django-debug-toolbar

2) Добавление в INSTALLED_APPS

В settings.py добавьте следующую строку в раздел INSTALLED_APPS.

Проверьте, что бы debug_toolbar был добавлен после django.contrib.staticfiles.

# debug_tool/settings.py

INSTALLED_APPS = [
    ...
    'debug_toolbar',
]

Также убедитесь, что в файле settings.py присутствует следующая строка STATIC_URL = '/static/'. Обычно она находится в конце модуля и не требует добавления.

Если ее нет, просто добавьте в конец файла.

3) Импорт в urls.py

Чтобы использовать Debug Toolbar, мы должны импортировать его пути. Следовательно, в urls.py добавьте код:

# debug_tool/urls.py
...
from django.conf import settings
from django.urls import path, include

# urlpatterns = [....

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        path('__debug__/', include(debug_toolbar.urls)),
    ] + urlpatterns

Убедитесь, что DEBUG имеет значение TRUE в settings.py, чтобы все работало. 

Вoт так выглядит мой файл urls.py:

Debug Toolbar URLs
Debug ToolBar urls.py

4) Подключение MiddleWare

Добавьте middleware панели инструментов debug_toolbar.middleware.DebugToolbarMiddleware, в список MIDDLEWARE в settings.py.

# debug_tool/settings.py
...
MIDDLEWARE = [
    ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]
...

5) Упоминание INTERNAL_IPS

Django Debug Toolbar отображается только в том случае, если в списке INTERNAL_IPS есть IP приложения. Для разработки на локальном компьютере добавьте в список IP 127.0.0.1.

# debug_tool/settings.py
...
INTERNAL_IPS = [
    '127.0.0.1',
]

Если списка INTERNAL_IPS еще нет, добавьте его в конец settings.py.

На этом мы закончили подключение панель отладки, теперь проверим как она работает.

Отображение Django Debug Toolbar

После добавления всего кода перейдите по на страницу 127.0.0.1:8000/sample/ в браузере.

Отображение Django Debug Toolbar

Если вы видите боковую панель, как на изображении, все получилось! Если нет, проверьте, отсутствует ли в ваших файлах какой-либо из приведенных выше фрагментов кода.

Вот и все, панель инструментов будет появляться в правой части страницы при каждой загрузке.

Официальная документация на английском здесь.

Максим
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
admin@pythonru.comAlex Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScript