Cómo configurar django-debug-toolbar

Es de saber que nuestras aplicaciones corren internamente cientos de líneas de código en su núcleo. Son tantos los archivos que, es difícil darle seguimiento en su ejecución. Aunque es importante saber como funciona el núcleo para distinguir de donde vienen los errores, lo es también la forma en que construimos nuestra aplicación. Es por que veremos como configurar django-debug-toolbar.


¿Qué es django-debug-toolbar?

Es una herramienta de depuración que nos muestra información detallada de lo que pasa en nuestra aplicación. Cada visualización de nuestro sitio internamente ejecuta cookies, sesiones, autenticaciones, consultas a base de datos, motores de plantillas, etc.

Vista previa de django-debug-toolbar

Con ésta valiosa herramienta podemos saber cualquier comportamiento, tiempos de ejecución, tiempos de respuesta, para poder optimizar al máximo las aplicaciones y saber qué estamos haciendo mal o cómo optimizar más nuestro código. Hay que saber distinguir la diferencia del sistema de errores de django y la del debug-toolbar.

Cuando django nos dice que algo estamos haciendo mal nos lo dice deteniendo la ejecución de la app, mientras tanto con el debug-toolbar es mera información. Vamos a configurarlo, verás que es muy sencillo.


Configuración

Primero necesitamos instalarlo en un nuestro entorno virtual.

    (entornovirtual) $ pip install django-debug-toolbar

Luego lo configuramos en nuestra variable INSTALLED_APPS en el archivo settings.py.

INSTALLED_APPS = [
    # ...
    'django.contrib.staticfiles',
    # ...
    'debug_toolbar',
]

Observa detenidamente que django.contrib.staticfiles está por encima de debug_toolbar.

Nos falta la configuración de los estáticos y eso necesitamos hacerlo de acuerdo si la aplicación está en producción o en desarrollo. Como ésta herramienta es para desarrolladores, sólo la queremos ver funcionar mientras tiramos código. Entonces vamos a abrir el archivo urls.py y a continuación dejo un ejemplo más completo de como hacerlo:

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),

    # Tus apps
    # path('', include('apps.main.urls')),
    # path('', include('apps.perfil.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

if settings.DEBUG:
    import debug_toolbar

    urlpatterns = urlpatterns + [
        path('__debug__/', include(debug_toolbar.urls)),
    ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Ahora vamos con la variable MIDDLEWARE del archivo settings.py. Recuerda que de acuerdo a la versión de Django la variable puede ser MIDDLEWAREo MIDDLEWARE_CLASSES.

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    
    # Configuración del Debug toolbar
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]

¡Una cosa más! Debemos de decirle que se muestre en nuestro navegador. Asignamos nuestra ip 127.0.0.1 a la variable INTERNAL_IPS al settings.py.

INTERNAL_IPS = [
    '127.0.0.1',
]

Si la variable no está entonces agrégala a tu archivo y ya con ésto se mostrará en tus vistas. Para que vean, les daré una captura de una app social que estoy creando al momento de hacer ésta guía.

django-social con debug-toolbar

Eso es todo. Hasta la próxima. Bendiciones!