Skip to main content

debugtoolbar for aiohttp

Project description

|Build status| |Coverage status|

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

Ported Panels

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

Help Needed

Are you an experienced 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 you have to attach middleware to your aiohttp.web.Application, and call aiohttp_debugtoolbar.setup

import aiohttp_debugtoolbar
app = web.Application(loop=loop,
                       middlewares=[aiohttp_debugtoolbar.middleware])
aiohttp_debugtoolbar.setup(app)

Full Example

import asyncio
import aiohttp_debugtoolbar
import aiohttp_mako

from aiohttp import web


@aiohttp_mako.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,
                          middlewares=[aiohttp_debugtoolbar.middleware])
    # install aiohttp_debugtoolbar
    aiohttp_debugtoolbar.setup(app)

    # install mako templates
    lookup = aiohttp_mako.setup(app, input_encoding='utf-8',
                                output_encoding='utf-8',
                                default_filters=['decode.utf8'])
    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>
    """
    lookup.put_string('index.html', template)

    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())

Play With Demo

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

Requirements

Project details


Download files

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

Source Distribution

aiohttp_debugtoolbar-0.0.2.tar.gz (403.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohttp_debugtoolbar-0.0.2-py3-none-any.whl (422.4 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_debugtoolbar-0.0.2.tar.gz.

File metadata

File hashes

Hashes for aiohttp_debugtoolbar-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8bbd515439556c0de0965a0a9ff01b306e81badf38032f6b7dfbf1e02fb7321f
MD5 edd35e3ca51903b1e95e88940d3c655e
BLAKE2b-256 e151da26bd92d83e03463b2a970b3ce445b2eec6fd31ac6471a69f799eafc320

See more details on using hashes here.

File details

Details for the file aiohttp_debugtoolbar-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohttp_debugtoolbar-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8086fca2dce97724027f9a8263e00202ee9f849abe6123d2412f839bca8b1d10
MD5 729a03c2e49e5718afe5b2ca70194520
BLAKE2b-256 b8fe22e6d9f56c43d366ad08e73daac768e51ad268d0f3eaa5521e00afa91ed7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page