Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

aiohttp-debugtoolbar

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aiohttp-debugtoolbar

debugtoolbar for aiohttp

  • 0.6.1
  • PyPI
  • Socket score

Maintainers
3

aiohttp-debugtoolbar

.. image:: https://travis-ci.org/aio-libs/aiohttp-debugtoolbar.svg?branch=master :target: https://travis-ci.org/aio-libs/aiohttp-debugtoolbar :alt: |Build status| .. image:: https://codecov.io/gh/aio-libs/aiohttp-debugtoolbar/branch/master/graph/badge.svg :target: https://codecov.io/gh/aio-libs/aiohttp-debugtoolbar :alt: |Coverage status| .. image:: https://img.shields.io/pypi/v/aiohttp-debugtoolbar.svg :target: https://pypi.python.org/pypi/aiohttp-debugtoolbar :alt: PyPI .. image:: https://badges.gitter.im/Join%20Chat.svg :target: https://gitter.im/aio-libs/Lobby :alt: 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

.. image:: 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.

.. code:: python

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

Full Example

.. code:: python

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

.. code:: python

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:

  • pyramid_debugtoolbar_
  • django-debug-toolbar_
  • flask-debugtoolbar_

Play With Demo

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

Requirements

  • aiohttp_
  • aiohttp_jinja2_

.. _Python: https://www.python.org .. _asyncio: http://docs.python.org/3/library/asyncio.html .. _aiohttp: https://github.com/KeepSafe/aiohttp .. _aiopg: https://github.com/aio-libs/aiopg .. _aiomysql: https://github.com/aio-libs/aiomysql .. _aiohttp_jinja2: https://github.com/aio-libs/aiohttp_jinja2 .. _pyramid_debugtoolbar: https://github.com/Pylons/pyramid_debugtoolbar .. _django-debug-toolbar: https://github.com/django-debug-toolbar/django-debug-toolbar .. _flask-debugtoolbar: https://github.com/mgood/flask-debugtoolbar

======= CHANGES

.. towncrier release notes start

0.6.1 (2023-11-19)

  • Filtered out requests to debugtoolbar itself from the requests history.
  • Improved import time by delaying loading of package data.
  • Fixed static URLs when using yarl 1.9+.
  • Fixed a warning in the re module.
  • Switched to aiohttp.web.AppKey for aiohttp 3.9.
  • Dropped Python 3.7 and added Python 3.11.

0.6.0 (2020-01-25)

  • Fixed ClassBasedView support. #207
  • Dropped aiohttp<3.3 support.
  • Dropped Python 3.4 support.
  • Dropped yield from and @asyncio.coroutine support.

0.5.0 (2018-02-14)

  • Added safe filter to render_content. #195
  • Added support for aiohtp 3.

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
  • Added examples for extra panels: pgsql & redis monitor. #59

0.2.0 (2016-11-08)

  • Refactored test suite.

0.1.4 (2016-11-07)

  • Renamed to aiohttp-debugtoolbar.
  • Fixed imcompatibility with aiohttp 1.1.

0.1.3 (2016-10-27)

  • Fixed 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)

  • Added Python 3.5 support. (Thanks @stormandco!)
  • Added view source button in RoutesDebugPanel. (Thanks @stormandco!)
  • Dropped support for Python 3.3. (Thanks @sloria!)
  • Added 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)

  • Redesigned UI look-and-feel.
  • Renamed toolbar_middleware_factory to just middleware.

0.0.1 (2015-05-18)

  • Initial release.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc