Django Debug Toolbar 설정과 사용.
1. 설치
(venv) $pip install django-debug-toolbar
2. 설정.
프로젝트의 settings.py의 INSTALLED_APPS 와 STATIC_URL 항목에 아래 내용이 있는지 확인한다.
project/settings.py
INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
]
STATIC_URL = 'static/'
TEMPLATES의 APP_DIRS 옵션이 True 로 되어 있는지 확인한다.
project/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
# ...
},
},
]
3. debug toolbar 설정
프로젝트의 settings.py 에 debug_toolbar를 아래와 같이 설정한다.
project/settings.py
INSTALLED_APPS = [
# created apps
# ...
# 3'rd party apps
# ...
'debug_toolbar',
# default apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
4. URL 추가
프로젝트 urls.py 에 아래 내용을 추가한다.
__debug__ 대신 다른 url을 사용해도 된다.
project/urls.py
urlpatterns = [
# ...
path('__debug__/', include('debug_toolbar.urls')),
]
5. 미들웨어 추가
debug toolbar는 대부분 미들웨어로 구현된다. settings.py 파일에 아래 내용을 추가해 준다.
미들웨어는 순서가 중요하므로 debug_toolbar 미들웨어는가능한 위쪽에 위치하도록 한다.
하지만 GZipMiddleware 처럼 응답 내용을 인코딩하는 미들웨어가 있다면 그 미들웨어보다 뒤쪽에 위치해야한다.
project/settings.py
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
6. 내부 IP 주소 설정
debug toolbar는 IP 주소가 django의 INTERNAL_IPS 설정에 등록되어 있어야 표시된다.
settings.py 에 내용이 없으므로, 아래 내용을 추가해 준다.
project/settings.py
INTERNAL_IPS = [
'127.0.0.1',
]
7. 사용
project/manage.py runserver 를 실행하고 브라우저에서 접속한면, 아래 그림처럼 브라우저 오른쪽에 django debug toolbar를 볼 수 있다.

SQL 항목을 선택하면 아래 그림 같은 결과를 볼 수 있다. 각 query에 걸리는 시간을 표시해 주는데, 최적화 필요한 쿼리를 확인하는데 유용할 듯 하다.
