Skip to main content
|Build status| https://codecov.io/gh/aio-libs/aiohttp-debugtoolbar/branch/master/graph/badge.svg

aiohttp_debugtoolbar provides a debug toolbar for your aiohttp web application. Library is port of pyramid_debugtoolbar and still in early development stages. Basic functionality has been ported:

  • basic panels

  • intercept redirects

  • intercept and pretty print exception

  • interactive python console

  • show source code

https://raw.githubusercontent.com/aio-libs/aiohttp_debugtoolbar/master/demo/aiohttp_debugtoolba_sceenshot.png

Ported Panels

HeaderDebugPanel, PerformanceDebugPanel, TracebackPanel, SettingsDebugPanel, MiddlewaresDebugPanel, VersionDebugPanel, RoutesDebugPanel, RequestVarsDebugPanel, LoggingPanel

Help Needed

Are you coder looking for a project to contribute to python/asyncio libraries? This is the project for you!

Install and Configuration

$ pip install aiohttp_debugtoolbar

In order to plug in aiohttp_debugtoolbar, call aiohttp_debugtoolbar.setup on your app.

import aiohttp_debugtoolbar
app = web.Application(loop=loop)
aiohttp_debugtoolbar.setup(app)

Full Example

import asyncio
import jinja2
import aiohttp_debugtoolbar
import aiohttp_jinja2

from aiohttp import web


@aiohttp_jinja2.template('index.html')
def basic_handler(request):
    return {'title': 'example aiohttp_debugtoolbar!',
            'text': 'Hello aiohttp_debugtoolbar!',
            'app': request.app}


@asyncio.coroutine
def exception_handler(request):
    raise NotImplementedError


@asyncio.coroutine
def init(loop):
    # add aiohttp_debugtoolbar middleware to you application
    app = web.Application(loop=loop)
    # install aiohttp_debugtoolbar
    aiohttp_debugtoolbar.setup(app)

    template = """
    <html>
        <head>
            <title>{{ title }}</title>
        </head>
        <body>
            <h1>{{ text }}</h1>
            <p>
              <a href="{{ app.router['exc_example'].url() }}">
              Exception example</a>
            </p>
        </body>
    </html>
    """
    # install jinja2 templates
    loader = jinja2.DictLoader({'index.html': template})
    aiohttp_jinja2.setup(app, loader=loader)

    # init routes for index page, and page with error
    app.router.add_route('GET', '/', basic_handler, name='index')
    app.router.add_route('GET', '/exc', exception_handler,
                         name='exc_example')

    handler = app.make_handler()
    srv = yield from loop.create_server(handler, '127.0.0.1', 9000)
    print("Server started at http://127.0.0.1:9000")
    return srv, handler


loop = asyncio.get_event_loop()
srv, handler = loop.run_until_complete(init(loop))
try:
    loop.run_forever()
except KeyboardInterrupt:
    loop.run_until_complete(handler.finish_connections())

Thanks!

I’ve borrowed a lot of code from following projects. I highly recommend to check them out:

Play With Demo

https://github.com/aio-libs/aiohttp_debugtoolbar/tree/master/demo

Requirements

CHANGES

0.2.0 (2016-11-08)

  • Refactor test suite

0.1.4 (2016-11-07)

  • Rename to aiohttp-debugtoolbar

  • Fix imcompatibility with aiohttp==1.1

0.1.3 (2016-10-27)

  • Fix a link to request info page, sort request information alphabetically #52

0.1.2 (2016-09-27)

  • Fixed empty functions names in performance panel #43 (Thanks @kammala!)

  • Fixed flashing message during page rendering issue #46

0.1.1 (2016-02-21)

  • Fixed a demo

  • Added syntax highlight in traceback view, switched highlighter from highlight.js to prism.js #31

0.1.0 (2016-02-13)

  • Fixed python 3.5 support (Thanks @stormandco!)

  • Added view source button in RoutesDebugPanel (Thanks @stormandco!)

  • Dropped support for Python 3.3 (Thanks @sloria!)

  • Add middleware in setup method (Thanks @sloria!)

  • Fixed bug with interactive console

  • Fixed support for aiohttp>=0.21.1

0.0.5 (2015-09-13)

  • Fixed IPv6 socket family error (Thanks @stormandco!)

0.0.4 (2015-09-05)

  • Fixed support for aiohttp>=0.17. (Thanks @himikof!)

0.0.3 (2015-07-03)

  • Switched template engine from mako to jinja2. (Thanks @iho!)

  • Added custom yield from to track context switches inside coroutine.

  • Implemented panel for collecting request log messages.

  • Disable toolbar code injecting for non web.Response answers (StreamResponse or WebSocketResponse for example) #12

0.0.2 (2015-05-26)

  • Redesign UI look-and-feel

  • Rename toolbar_middleware_factory to just middleware.

0.0.1 (2015-05-18)

  • Initial release.

Release files for aiohttp-debugtoolbar 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiohttp-debugtoolbar 0.2.0
File Size Uploaded
aiohttp-debugtoolbar-0.2.0.tar.gz 445.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiohttp-debugtoolbar 0.2.0
File Interpreter ABI Platform
aiohttp_debugtoolbar-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 911.1 kB

Release files / aiohttp-debugtoolbar-0.2.0.tar.gz

Download URL aiohttp-debugtoolbar-0.2.0.tar.gz
Size 445.4 kB
Tags Source
SHA-256 checksum
How to use checksums
871dcad0ac05279a55d8cc4536af3275c363e4c49b081742a92e0cba6a9c2eda
BLAKE2b-256 checksum
How to use checksums
584e9c186b92d4544f4431fe7888d2a41ae5cea0443ea4a205b50cf5d3093ff6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / aiohttp_debugtoolbar-0.2.0-py3-none-any.whl

Download URL aiohttp_debugtoolbar-0.2.0-py3-none-any.whl
Size 465.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37a22373decf33b25f7d0b6039241391df6c8d49686b678ad693b90bd887c198
BLAKE2b-256 checksum
How to use checksums
9d9fbf4f35211639b004e7f803fd41bce8fbbaf42fa1fd8f46f87bd04985c2c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

1 release file

0.0.4

1 release file

0.0.3

2 release files

0.0.2

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page