django debug toolbar 설정과 사용

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

참고: https://django-debug-toolbar.readthedocs.io/en/latest/

답글 남기기

Your email address will not be published.