debugtoolbar for aiohttp
Project description
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, 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)
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
Python 3.4+
CHANGES
0.4.1 (2017-08-30)
Fixed issue with redirects without location header #174
0.4.0 (2017-05-04)
Added asyncio trove classifier
Addes support for aiohttp>=2.0.7
0.3.0 (2016-11-18)
Fixed middleware route finding when using sub-apps #65
Add examples for extra panels: pgsql & redis monitor #59
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiohttp-debugtoolbar-0.4.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c0a3f4f0a66480c19dd9f843262ef8ff2adec1b0e97452aebf2f31e49ab400b |
|
MD5 | 5a77695573bf0beb10e8163261fa1fac |
|
BLAKE2b-256 | e6709c34f659438b94edee76fe870244689bcbee8f7348d278fdb3c79e34a18d |
Hashes for aiohttp_debugtoolbar-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0e17e5627261463a754f626f39ef3b5936a29f8a72751acdad2c0c8a32259ac |
|
MD5 | 22c15715faacda6fd59a38879c872f2e |
|
BLAKE2b-256 | 28fef7ece48e690a8861348ee83d9c6874755af7279bbadb970f142af5cd7491 |