Skip to main content

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 settings.py:

# Make sure to add django_pdb before any apps that override the 'runserver'
# or 'test' commands (Includes south and django.contrib.staticfiles)
INSTALLED_APPS = (
    ...
    'django_pdb',
    ...
)

# After your MIDDLEWARE classes:
if DEBUG:
    MIDDLEWARE_CLASSES += ('django_pdb.middleware.PdbMiddleware',)

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 test/runserver

manage.py test --pdb does not yet work if you also have other apps that override the test command.

manage.py runserver --pdb does not yet work if you also have other apps that override the runserver command.

Adding ?pdb to the URL does work even if you have other apps that override the runserver command.

Make sure to put django_pdb before any conflicting apps in INSTALLED_APPS so that they have priority.

Notable apps include django.contrib.staticfile and south.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

django-pdb-0.2.3.zip (9.6 kB view details)

Uploaded Source

django-pdb-0.2.3.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file django-pdb-0.2.3.zip.

File metadata

  • Download URL: django-pdb-0.2.3.zip
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-pdb-0.2.3.zip
Algorithm Hash digest
SHA256 bedb81701ad98292d6fedf94ae1ddd7869ed581d9078b68097f97cc6e3c0c6c8
MD5 b77097e715934e10dd0f1cc8a9477c9c
BLAKE2b-256 079028062650ebe11b9f956b426ce96bd59e620d28f248055adc1c3052a6cef0

See more details on using hashes here.

File details

Details for the file django-pdb-0.2.3.tar.gz.

File metadata

  • Download URL: django-pdb-0.2.3.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-pdb-0.2.3.tar.gz
Algorithm Hash digest
SHA256 919fd677dc45eececb42809f81b1a5dc4ffabbe340defe5785d145d7a136af15
MD5 175bef3f1dbdf9aca76e7de80cd940b8
BLAKE2b-256 589969947e23cd818fe24f06c6138345d4c5a436ed50a1df3725484db055e89a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page