django-debug-toolbar: мощный инструмент обнаружения, разработанный django.

Django
django-debug-toolbar: мощный инструмент обнаружения, разработанный django.

django-debug-toolbar

вводить

Django — это тяжеловесный веб-фреймворк Python.

Описание: Django позволяет быстрее создавать лучшие веб-приложения с меньшим количеством кода.

При отладке и оптимизации мы часто хотим знать следующие вопросы:

  • Сколько операторов SQL было выполнено, затраченное время и время, затраченное на запрос на каждый оператор
  • Какие есть шаблоны для рендеринга страницы и время рендеринга
  • Влияет ли кеширование на производительность

django-debug-toolbar — очень мощный инструмент для тестирования производительности Django.

Установить

скачатьdjango-debug-toolbar

pip install django-debug-toolbar

Исправлятьsetting.py

Обязательно включите отладку

DEBUG = True

INSTALLED_APPSПрисоединяйсяdebug-toolbar

INSTALLED_APPS = (
    ......
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'library.apps.libraryConfig',
    'debug_toolbar',
)

Добавить промежуточное ПО

MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
     ...... 
     ......
]

URL-адрес конфигурации

urls.pyдобавлен файл:

from django.conf.urls import include, url

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

запустить проект

python3 manage.py runserver 0.0.0.0:8000

Здесь я позаимствовал проект Django на github в качестве эксперимента:система библиотечного абонемента

Схема эффекта выглядит следующим образом:

Эксплуатация и конфигурация

Панель инструментов отладки работает в два этапа. Во-первых, он собирает данные по мере того, как Django обрабатывает запрос и сохраняет эти данные в памяти. Затем, когда панель открывается в браузере, она получает данные на сервере и отображает их. Если при просмотре сайта вы наблюдаете чрезмерное потребление ЦП или памяти, возможно, стоит подумать об оптимизации этапа «сбора». Если панель дисплея работает медленно, может потребоваться оптимизация этапа «рендеринга».

Django-Debug-панель инструментов сохраняет данные, собранные в течение последних 10 запросов в памяти по умолчанию.

допустимыйsetting.pyВнесите изменения, добавив или изменив следующую конфигурацию в DEBUG_TOOLBAR_CONFIG в:

RESULTS_CACHE_SIZE : 10 (默认)

Для некоторых других конфигураций см.:Конфигурация — документация Django Debug Toolbar 1.10.1

Плагины сторонних функций

django-debug-toolbar позволяет добавлять сторонние панели.

В настоящее время предлагает несколько плагинов, которые могут ссылаться на:Panels

Например, чтобы использовать график пламени для выявления проблем с производительностью процессора, вы можете использовать:djdt-flamegraph: Flamegraphs for Django Debug Toolbar

  1. Установить djdt_flamegraph

  2. существуетsetting.pyДобавьте 'djdt_flamegraph.FlamegraphPanel' на панель со следующей конфигурацией:

    DEBUG_TOOLBAR_PANELS = [
     'debug_toolbar.panels.versions.VersionsPanel',
     'debug_toolbar.panels.timer.TimerPanel',
     …………………………
     …………………………
     'djdt_flamegraph.FlamegraphPanel',
    ]
    
  3. Стартовый проект

     python3 manage.py runserver --nothreading --noreload 0.0.0.0:8000
    
  4. Эффект:

При нормальных обстоятельствах должен быть график пламени, который может быть причиной конфигурации или системы Windows, но сторонние панельные плагины добавляются и используются таким образом. Если используется база данных MongoDB, есть также Соответствующие сторонние плагины для наблюдения и отладки:MongoDB panel for the Django Debug Toolbar

использовать

В основном он имеет следующие функции, которые могут быть расширены в соответствии с вашими потребностями мониторинга.

  • Мониторинг операций оператора SQL
  • Мониторинг работы процессора
  • Использование статических файлов
  • Использование шаблона

Ссылаться на

Django Debug Toolbar 1.10.1 documentation

Установка и использование Django-debug-toolbar и как перехватывать ajax-запросы

Django + DebugToolbar создает полноценную веб-разработку — Блог Didi Cloud