# Flask-DebugToolbar

This extension adds a toolbar overlay to Flask applications containing useful information for debugging.

## Installation

Installing is simple with pip:

    $ pip install flask-debugtoolbar

## Usage

Setting up the debug toolbar is simple:

    from flask import Flask
    from flask_debugtoolbar import DebugToolbarExtension

    app = Flask(__name__)

    # the toolbar is only enabled in debug mode:
    app.debug = True

    # set a 'SECRET_KEY' to enable the Flask session cookies
    app.config['SECRET_KEY'] = '<replace with a secret key>'

    toolbar = DebugToolbarExtension(app)

The toolbar will automatically be injected into HTML responses when debug mode is on. In production, setting `app.debug = False` will disable the toolbar.

This extension also supports the Flask app factory pattern by separately creating the toolbar and later initializing it for an app:

    toolbar = DebugToolbarExtension()
    # Then later on.
    app = create_app('the-config.cfg')
    toolbar.init_app(app)

## Configuration

The toolbar support several configuration options:

Name | Description | Default
--- | --- | ---
`DEBUG_TB_ENABLED` | Enable the toolbar? | `app.debug`
`DEBUG_TB_HOSTS` | Whitelist of hosts to display toolbar | any host
`DEBUG_TB_ROUTES_HOST` | The host to associate with toolbar routes (where its assets are served from), or the sentinel value `*` to serve from the same host as the current request (ie any host). This is only required if Flask is configured to use `host_matching`. | `None`
`DEBUG_TB_INTERCEPT_REDIRECTS` | Should intercept redirects? | `True`
`DEBUG_TB_PANELS` | List of module/class names of panels | enable all built-in panels
`DEBUG_TB_PROFILER_ENABLED` | Enable the profiler on all requests | `False`, user-enabled
`DEBUG_TB_TEMPLATE_EDITOR_ENABLED` | Enable the template editor | `False`
`DEBUG_TB_PROFILER_DUMP_FILENAME` | Filename of the profiler stats dump, can be a `str` or a `callable` | `None`, no dump will be written

To change one of the config options, set it in the Flask app’s config like:

    app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

## Panels

- Built-In Panels
  - Versions
  - Time
  - HTTP Headers
  - Request Vars
  - Config
  - Templates
  - SQLAlchemy
  - Logging
  - Route List
  - Profiler
- BSD-3-Clause License

## Contributing

Fork us on GitHub

## Thanks

This was based on the original django-debug-toolbar. Thanks to Michael van Tellingen for the original development of this Flask extension, and to all the individual contributors.