Output in the console the executed SQL of queries made by Django's ORM
Project description
django-sql-debug
Output in the console the executed SQL of queries made by Django's ORM.
This is a development tool that should only be used in a local environment and never included in production code.
Features
- Print executed SQL to the console
- Automatically runs
EXPLAIN ANALYSE - Allows for debugging of single query, function, test or the entire application
Why not use django-debug-toolbar?
Django Debug Toolbar is great if you are developing an html website using Django. However, since it is focused on displaying the queries using HTML code inject in the webpage it is not suitable if you are developing a REST API or need to view the queries being run in a unit test. This lib was inspired by the weakenesses of Django Debug Toolbar on these use cases.
Installation
pip install django-sql-debug
Examples
There are many ways to use the library. You can set the scope of the debug using one of the examples below.
Debugging a small segment of code
from django_sql_debug import debug_sql
with @debug_sql():
SomeModel.objects.get(id=5) # will be captured
SomeModel.objects.get(id=5) # will not be captured
Debugging a single function or test
from django_sql_debug import debug_sql
class MyTest(TestCase):
@debug_sql()
def test_will_show_executed_sql(self):
SomeModel.objects.get(id=5)
def test_will_not_show_executed_sql(self):
SomeModel.objects.create(name='test')
Debugging an entire TestCase
from django_sql_debug import DebugSQLTestCaseMixin
class MyTest(DebugSQLTestCaseMixin, TestCase):
def test_will_show_executed_sql(self):
SomeModel.objects.get(id=5)
def test_will_also_show_executed_sql(self):
SomeModel.objects.create(name='test')
Debugging an entire application
Add django_sql_debug to the INSTALLED_APPS and MIDDLEWARES.
INSTALLED_APPS = [
'django_sql_debug',
...
]
MIDDLEWARE = [
'django_sql_debug.DebugSQLMiddleware',
...
]
Configuration
You can change some configurations in Django's settings.py
- SQL_DEBUG_ENABLE_PARAMS: Include the SQL parameters section in the debug log (default: True)
- SQL_DEBUG_ENABLE_PERFORMANCE: Include the SQL performance section in the debug log (default: True)
- SQL_DEBUG_ENABLE_EXPLAIN: Run
EXPLAINcommand on supported databases (default: True) - SQL_DEBUG_OUTPUT_STREAM: The output stream to write sql queries and additional sections (default: sys.stdout)
- SQL_DEBUG_OUTPUT_SIZE: The size of the output headers (default: terminal width)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_sql_debug-0.0.3-py3-none-any.whl.
File metadata
- Download URL: django_sql_debug-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e84ccc6a94b94b7cefdff9353203ab4f49b4c05d123ee9481eb9c3313b0bcee9
|
|
| MD5 |
865a8ca722dd4a313abb12cfbbfcaa72
|
|
| BLAKE2b-256 |
50403f0bdc769b625348f1c03e1be8d1757b940c726580d0608fcf2186d930bd
|