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:
- Django: Venv bajo FreeBSD
- Django: MVT, Apps y URLs
- Django: Modelos de base de datos
- Django: Interfaz de administración
- Django: DTL(Django Template Language)
Activamos el venv del proyecto:
source bin/activate
cd rxWodProject/
Instalamos la toolbar:
Nos aseguramos de tener la App ‘django.contrib.staticfiles’ y añadimos la App ‘debugtoolbar’, además debemos tener la variable STATICURL configurada:
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.
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:
INTERNAL_IPS = [
'127.0.0.1',
]
Añadimos una URL extra:
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:
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: