mirror of
https://github.com/pallets-eco/flask-debugtoolbar.git
synced 2025-12-31 18:49:36 -06:00
Allows configuration of Flask-DebugToolbar to support a Flask app running in `host_matching` mode. When Flask is configured this way, routes are each tied to a `host` definition. This can either be a single explicit host, or a host definition that includes variable values similar to Werkzeug path definitions, eg `<subdomain>.toolbar.com`. Handling explicit domains is simple, as the host can be passed through directly - and this happens automatically. If the host contains any variable parts, then calls to `url_for` need to be able to access the appropriate values for those variables. If the host string specified by the user contains arbitrary variables, it's difficult for the toolbar to know what those should evaluate to. So we restrict the possible options for the toolbar host to one of two options here: either a single explicit host, or a full-wildcard host. The wildcard host is managed internally by Flask-DebugToolbar so that we know: 1) the variable name, and 2) what value to inject for it (the current request's host).
99 lines
3.5 KiB
ReStructuredText
99 lines
3.5 KiB
ReStructuredText
Flask-DebugToolbar
|
|
==================
|
|
|
|
This extension adds a toolbar overlay to Flask applications containing useful information for debugging.
|
|
|
|
.. image:: _static/example.gif
|
|
|
|
Installation
|
|
------------
|
|
|
|
Installing is simple with `pip`_::
|
|
|
|
$ pip install flask-debugtoolbar
|
|
|
|
.. _pip: https://pip.pypa.io/
|
|
|
|
|
|
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 ``None``
|
|
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`.
|
|
``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, ``None``, no dump will be written
|
|
can be a ``str`` or a ``callable``
|
|
==================================== ===================================== ==========================
|
|
|
|
To change one of the config options, set it in the Flask app's config like::
|
|
|
|
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
|
|
|
|
|
|
Panels
|
|
------
|
|
|
|
.. toctree::
|
|
|
|
panels
|
|
license
|
|
|
|
Contributing
|
|
------------
|
|
|
|
Fork us `on GitHub <https://github.com/pallets-eco/flask-debugtoolbar>`_
|
|
|
|
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`_.
|
|
|
|
.. _django-debug-toolbar: https://github.com/jazzband/django-debug-toolbar
|
|
.. _Michael van Tellingen: https://github.com/mvantellingen
|
|
.. _individual contributors: https://github.com/pallets-eco/flask-debugtoolbar/graphs/contributors
|