Concept Flow - DEBUG mode behavior
Start Django App
Check DEBUG setting
Handle requests
This flow shows how Django checks the DEBUG setting at startup and chooses detailed error pages and dev tools if True, or generic error pages if False.
DEBUG = True # On error if DEBUG: show_detailed_error() else: show_generic_error()
| Step | DEBUG Value | Error Occurred? | Action Taken | Output |
|---|---|---|---|---|
| 1 | True | No | Serve normal page | Normal page shown |
| 2 | True | Yes | Show detailed error | Detailed error page with stack trace |
| 3 | False | No | Serve normal page | Normal page shown |
| 4 | False | Yes | Show generic error | Generic error page without details |
| 5 | True | Yes | Enable debug toolbar | Debug toolbar visible on page |
| 6 | False | Yes | Disable debug toolbar | No debug toolbar |
| 7 | - | - | - | Execution ends |
| Variable | Start | After Step 1 | After Step 2 | After Step 4 | Final |
|---|---|---|---|---|---|
| DEBUG | True | True | True | False | False |
| Error Occurred | No | No | Yes | Yes | Yes |
| Action Taken | - | Serve normal page | Show detailed error | Show generic error | Show generic error |
| Output | - | Normal page shown | Detailed error page | Generic error page | Generic error page |
DEBUG mode in Django controls error page detail. Set DEBUG=True to see detailed errors and dev tools. Set DEBUG=False for generic error pages in production. DEBUG does not affect normal page serving. Always disable DEBUG in live sites for security.