Django: Debug Toolbar


Django Debug Toolbar es un conjunto de paneles que muestran información de debug acerca de las peticiones realizadas en la aplicación web, información como versiones utilizadas, cabeceras HTTP, tiempos de respuesta, señales recibidas, uso de cachés, plantillas empleadas, análisis sobre las querys realizadas a la base de datos entre otra información útil.

Antes de comenzar es recomendable leer los artículos anteriores sobre Django ya que son los pasos previos a este artículo:


Activamos el venv del proyecto:

cd rxWod
source bin/activate
cd rxWodProject/

Instalamos la toolbar:

pip install django-debug-toolbar

Nos aseguramos de tener la App 'django.contrib.staticfiles' y añadimos la App 'debug_toolbar', además debemos tener la variable STATIC_URL configurada:

vi rxWodProject/settings.py
INSTALLED_APPS = [
    # ...
    'django.contrib.staticfiles',
    'debug_toolbar',
]

STATIC_URL = '/static/'

Habilitamos el middleware de la toolbar, según comentan en la documentación el orden es importante:

The order of MIDDLEWARE is important. You should include the Debug Toolbar middleware as early as possible in the list. However, it must come after any other middleware that encodes the response’s content, such as GZipMiddleware.

vi rxWodProject/settings.py
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

Habilitamos el acceso a la toolbar desde localhost:

vi rxWodProject/settings.py
INTERNAL_IPS = [
    '127.0.0.1',
]

Añadimos una URL extra:

vi rxWodProject/urls.py
import debug_toolbar

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

urlpatterns = [
    path('', include('rxWod.urls')),
    path('', include('usersAuth.urls')),
    path('admin/', admin.site.urls),
    path('__debug__/', include(debug_toolbar.urls)),
]

Arrancamos el servidor:

python manage.py runserver

Accedemos a nuestra App:

http://localhost:8000

Podemos ver un panel lateral con información sobre las querys SQL entre otra información útil.

Las querys en detalle se ven del siguiente modo:

Si te ha gustado el artículo puedes invitarme a un redbull aquí.
Si tienes cualquier pregunta siempre puedes enviarme un Email o escribir en el grupo de Telegram de AlfaExploit.
Autor: kr0m -- 02/03/2021 20:30:20 -- Categoria: Programacion Django