Skip to main content

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

Project description

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

Project details

Release history Release notifications

History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Flask-DebugToolbar-LineProfilerPanel-0.0.6.tar.gz (4.5 kB) Copy SHA256 hash SHA256 Source None Nov 13, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page