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에 걸리는 시간을 표시해 주는데, 최적화 필요한 쿼리를 확인하는데 유용할 듯 하다.