Flask-DebugToolbar-Mongo

MongoDB panel for the Flask Debug Toolbar


License
MIT
Install
pip install Flask-DebugToolbar-Mongo==0.1

Documentation

Flask Debug Toolbar MongoDB Panel

Info: An extension panel for Matt Good's Flask-DebugToolbar that adds MongoDB debugging information
Author: Bruno Carlin (http://github.com/bcarlin, http://twitter.com/brunocarlin)

History

This is a port of the MongoDB addon to the Django Debug Toolbar written by Harry Marr (http://github.com/hmarr, http://twitter.com/harrymarr).

There existed another port (https://github.com/cenkalti/flask-debug-toolbar-mongo) that was neither up-to-date nor operational (there are still imports from django).

Here is a clean port that I intend to maintain current with Harry Marr's original work, and occasionnally augment with new features if needed.

All the thanks go to Harry!

Warning

This package is still at an early stage. While it works, it is not yet complete and its reports are not exhaustives.

If you want to help improve it, you are the most welcome to do so. Just fork the repository on Github and send your pull requests !

Setup

First, you need to get the package. Install it with pip:

pip install flask-debugtoolbar-mongo

Somewhere after you've set app.debug = True and before app.run, you need to specify the flask_debugtoolbar panels that you want to use and include 'flask_debugtoolbar_mongo.panels.MongoDebugPanel' in that list.

For example, here's a small flask app with the panel installed and with line profiling enabled for the hello_world:

from flask import Flask
app = Flask(__name__)

import flask_debugtoolbar

@app.route('/')
def hello_world():
    return 'Hello World')

if __name__ == '__main__':
    app.debug = True

    # Specify the debug panels you want
    app.config['DEBUG_TB_PANELS'] = [
        'flask_debugtoolbar.panels.versions.VersionDebugPanel',
        'flask_debugtoolbar.panels.timer.TimerDebugPanel',
        'flask_debugtoolbar.panels.headers.HeaderDebugPanel',
        'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel',
        'flask_debugtoolbar.panels.template.TemplateDebugPanel',
        'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel',
        'flask_debugtoolbar.panels.logger.LoggingPanel',
        'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel',
        # Add the MongoDB panel
        'flask_debugtoolbar_mongo.panel.MongoDebugPanel',
    ]
    toolbar = flask_debugtoolbar.DebugToolbarExtension(app)

    app.run()

Flask-debugtoolbar-mongo accepts the following configration options:

app.config['DEBUG_TB_MONGO'] = {
  'SHOW_STACKTRACES': True
  'HIDE_FLASK_FROM_STACKTRACES': True
}
SHOW_STACKTRACES
Obtaining stack traces can slow down queries significantly. You can turn them off by setting this option to False.
HIDE_FLASK_FROM_STACKTRACES
Hides Flask calls from the stacktrace.