Skip to content

aiohttp_debugtoolbar is library for debugtoolbar support for aiohttp

License

aio-libs/aiohttp-debugtoolbar

aiohttp-debugtoolbar

|Build status| PyPI Chat on Gitter

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') async def basic_handler(request): return {'title': 'example aiohttp_debugtoolbar!', 'text': 'Hello aiohttp_debugtoolbar!', 'app': request.app} async def exception_handler(request): raise NotImplementedError async 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') return app loop = asyncio.get_event_loop() app = loop.run_until_complete(init(loop)) web.run_app(app, host='127.0.0.1', port=9000)

Settings

aiohttp_debugtoolbar.setup(app, hosts=['172.19.0.1', ])

Supported options

  • enabled: The debugtoolbar is disabled if False. By default is set to True.
  • intercept_redirects: If True, intercept redirect and display an intermediate page with a link to the redirect page. By default is set to True.
  • hosts: The list of allow hosts. By default is set to ['127.0.0.1', '::1'].
  • exclude_prefixes: The list of forbidden hosts. By default is set to [].
  • check_host: If False, disable the host check and display debugtoolbar for any host. By default is set to True.
  • max_request_history: The max value for storing requests. By default is set to 100.
  • max_visible_requests: The max value of display requests. By default is set to 10.
  • path_prefix: The prefix of path to debugtoolbar. By default is set to '/_debugtoolbar'.

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

About

aiohttp_debugtoolbar is library for debugtoolbar support for aiohttp

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 24