Django
Set up debugger in a Django project.
Last updated March 19, 2026
Python + Django
This guide covers adding debugger to a Django project. The setup takes one line in your settings file.
| Feature | Support |
|---|---|
| Server console | Yes |
| Server errors | Yes |
| HTTP requests | Yes |
| Browser script injection | Automatic |
Prerequisites
- Python 3.10 or later
- Django 4.2 or later
Install
pip install ephem-debugger[django]
Or with uv:
uv add ephem-debugger[django]
Set up
Add the middleware to your Django settings:
# settings.py
MIDDLEWARE = [
"ephem_debugger_py.middleware.django.DebuggerMiddleware",
# ... other middleware
]
# Optional: set the port (defaults to 8000)
DEBUGGER_PORT = 8000
One line in MIDDLEWARE handles everything — log store, IPC bridge,
console capture, and HTTP request logging.
What gets captured
- HTTP requests — method, path, status code, and latency for every request
- Root logger output — the debugger handler is added to the root
Python logger, capturing all
logging.info(),logging.error(), etc. calls throughout your Django app
Verify
Start your server:
python manage.py runserver
Open another terminal and query:
npx dbg statuspnpm dlx dbg statusbun x dbg statusyarn dlx dbg statusnpx dbg server consolepnpm dlx dbg server consolebun x dbg server consoleyarn dlx dbg server consoleProduction safety
Django only runs the middleware when it's in the MIDDLEWARE list.
Guard it for production:
# settings.py
MIDDLEWARE = [...]
import os
if os.getenv("DEBUG") == "1":
MIDDLEWARE.insert(0, "ephem_debugger_py.middleware.django.DebuggerMiddleware")
Browser support
If your application serves HTML pages, the debugger automatically captures browser-side data. The middleware:
- Serves the browser client script at
/_/d.js - Handles browser log ingest at
POST /_/d - Auto-injects script tags into HTML responses before
</body>
No additional setup is needed. Query browser data with:
npx dbg browser consolepnpm dlx dbg browser consolebun x dbg browser consoleyarn dlx dbg browser consolenpx dbg browser errorspnpm dlx dbg browser errorsbun x dbg browser errorsyarn dlx dbg browser errorsnpx dbg browser networkpnpm dlx dbg browser networkbun x dbg browser networkyarn dlx dbg browser networknpx dbg browser cookiespnpm dlx dbg browser cookiesbun x dbg browser cookiesyarn dlx dbg browser cookiesnpx dbg browser storagepnpm dlx dbg browser storagebun x dbg browser storageyarn dlx dbg browser storageFull example
See the complete working example at examples/python/django.



