¿Hay alguna manera de imprimir la consulta que genera el ORM de Django?
Digamos que ejecuto la siguiente declaración: Model.objects.filter(name='test')
¿Cómo puedo ver la consulta SQL generada?
django
django-models
django-orm
Jarvis
fuente
fuente
prefetch_related
ejemplo, mostrar 2 consultas? Solo veo 1.<django.db.models.sql.query.Query object
También puede usar el registro de Python para registrar todas las consultas generadas por Django. Simplemente agregue esto a su archivo de configuración.
Otro método en caso de que la aplicación genere una salida html: se puede usar la barra de herramientas de depuración de django .
fuente
'level': 'DEBUG'
debajo'django.db'
.Puede pegar este código en su shell que mostrará todas las consultas SQL:
fuente
Mientras
DEBUG
esté encendido:Para una consulta individual, puede hacer:
fuente
query
devuelve elQuery
objeto desde Djagno 1.2 que no tieneas_sql
atributo.Tal vez debería echar un vistazo a la
django-debug-toolbar
aplicación, registrará todas las consultas por usted, mostrará información de perfil para ellas y mucho más.fuente
Una solución sólida sería hacer que su servidor de base de datos inicie sesión en un archivo y luego
fuente
Si está utilizando el enrutamiento de la base de datos, probablemente tenga más de una conexión de base de datos. Un código como este le permite ver las conexiones en una sesión. Puede restablecer las estadísticas de la misma manera que con una sola conexión:
reset_queries()
...
fuente
Puede usar una barra de herramientas debug_tool de Django para ver la consulta SQL. Guía paso a paso para el uso de debug_toolbar:
Instala Debug_toolbar
Edite el archivo settings.py y agregue debug_toolbar a las aplicaciones instaladas, esto se debe agregar a continuación a 'django.contrib.staticfiles'. Agregue también debug_toolbar a Middleware.
Settings.py =>
crear una nueva lista llamada INTERNAL_IPS en el archivo settings.py
Settings.py => crea una nueva lista al final del archivo settings.py y agrega la lista a continuación:
Esto permitirá que la depuración se ejecute solo en el servidor de desarrollo interno
Edite el archivo urls.py de #Project y agregue el siguiente código:
aplicar migrar y ejecutar el servidor nuevamente
Verá un complemento en su página web en 127.0.0.1 y si hace clic en la casilla de verificación Consulta SQL, también puede ver el tiempo de ejecución de la consulta.
fuente