UNKNOWN
Project description
Make debugging Django easier
Adding pdb.set_trace() to your source files every time you want to break into pdb sucks.
Don’t do that.
Do this.
Installation
Install using pip:
pip install django-pdb
Add to your django project:
INSTALLED_APPS = ( ... 'django_pdb', )
Usage
manage.py runserver
Drops into pdb at the start of a view if the URL includes a pdb GET parameter.
Drops into ipdb at the start of a view if the URL includes a ipdb GET parameter.
This behavior is only enabled if settings.DEBUG = True:
bash: testproject/manage.py runserver Validating models... 0 errors found Django version 1.3, using settings 'testproject.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. GET /test?pdb function "myview" in testapp/views.py:7 args: () kwargs: {} > /Users/tom/github/django-pdb/testproject/testapp/views.py(8)myview() -> a = 1 (Pdb)
manage.py runserver --pdb or manage.py runserver --ipdb
Drops into pdb/ipdb at the start of every view:
bash: testproject/manage.py runserver --pdb Validating models... 0 errors found Django version 1.3, using settings 'testproject.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. GET /test function "myview" in testapp/views.py:7 args: () kwargs: {} > /Users/tom/github/django-pdb/testproject/testapp/views.py(7)myview() -> a = 1 (Pdb)
manage.py test --pdb or manage.py test --ipdb
Drops into pdb/ipdb on test errors/failures:
bash: testproject/manage.py test testapp --pdb Creating test database for alias 'default'... E ====================================================================== >>> test_error (testapp.tests.SimpleTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/tom/github/django-pdb/testproject/testapp/tests.py", line 16, in test_error one_plus_one = four NameError: global name 'four' is not defined ====================================================================== > /Users/tom/github/django-pdb/testproject/testapp/tests.py(16)test_error() -> one_plus_one = four (Pdb)
Other apps that override runserver
If you also use other apps that override the runserver command, but still want to use django-pdb…
Add the following to your settings.py:
if DEBUG: MIDDLEWARE_CLASSES += ('django_pdb.middleware.PdbMiddleware',)
And make sure that django_pdb comes before any conflicting apps in INSTALLED_APPS.
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.