Dark Launch

Django Show the Raw SQL Query Running

To see the raw SQL queries Django is running, do the following:

In your settings file (typically settings.py), ensure DEBUG is set to True

Python
DEBUG = True

Then import connection from django.db and print connection.queries

Python
import pprint
 
from django.db import connection
 
 
pprint.pprint(connection.queries)

If your queries are slowing you down, look into using select_related() to follow foreign keys

Comments


  1. see also debugsqlshell in django-debug-toolbar.
    github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/management/commands/debugsqlshell.py

  2. also:
    import logging
    l = logging.getLogger('django.db.backends')
    l.setLevel(logging.DEBUG)
    l.addHandler(logging.StreamHandler())
    stackoverflow.com/questions/2314920/django-show-log-orm-sql-calls-from-python-shell

  3. Also:
    >>> queryset = MyModel.objects.all()
    >>> print queryset.query
    SELECT "myapp_mymodel"."id", ... FROM "myapp_mymodel"

  4. from django.db import connection
    print connection.queries
    works for the update() command as well.