skip to navigation
skip to content

Flask-DebugToolbar-LineProfilerPanel 0.0.6

Panel for the Flask Debug toolbar to capture and view line-by-line profiling stats

Latest Version: 1.0.2

This is a panel for flask_debugtoolbar which enables the ability to view line profiling information from selected functions.

The line profile information comes from the line_profiler module, but you don’t need to worry about that.


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

pip install flask-debugtoolbar-lineprofilerpanel

Somewhere after you’ve set app.debug = True and before, you need to specify the flask_debugtoolbar panels that you want to use and include 'flask_debugtoolbar_lineprofilerpanel.panels.LineProfilerPanel' 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

from flask_debugtoolbar_lineprofilerpanel.profile import line_profile

def hello_world():
    return flask.render_template('hello_world.html')

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

    # Specify the debug panels you want
    app.config['DEBUG_TB_PANELS'] = [
        # Add the line profiling
    toolbar = flask_debugtoolbar.DebugToolbarExtension(app)


Unlike the regular profile panel that comes with flask_debugtoolbar, the line profiler will only profile functions you specifically tell it to. You can either use it as a decorator or directly as a function.

from flask_debugtoolbar_lineprofilerpanel.profile import line_profile

# Using it as a decorator
def profile_page():
    return flask.render_template('profile_page')

# Explicit argument

Note that if I had done line_profile(profile_page) in the example above, it would’ve profiled the wrapper created by app.route. In general, you probably just want to use line_profile as a decorator.

Also note that the following will profile the decorator wrapper, not the inner function.

# Using it incorrectly as a decorator
def profile_page():
    return flask.render_template('profile_page')

Always use @line_profile as the inner-most decorator.

0.0.6 (2012-11-13)

  • No longer polluting the template namespace
  • Show all lines, not just those with profiling information

0.0.5 (2012-11-13)

  • Table output, ditch the default output given by LineProfiler.print_stats()
  • Usage instructions in the panel

0.0.1 (2012-11-12)

  • Got it “working”
  • Super Ugly
File Type Py Version Uploaded on Size
Flask-DebugToolbar-LineProfilerPanel-0.0.6.tar.gz (md5) Source 2012-11-13 4KB