跳转到主要内容

为aiohttp提供的debugtoolbar

项目描述

aiohttp-debugtoolbar

|Build status| https://codecov.io/gh/aio-libs/aiohttp-debugtoolbar/branch/master/graph/badge.svg PyPI Chat on Gitter

aiohttp_debugtoolbar 为您的 aiohttp 网络应用提供了一个调试工具栏。库是 pyramid_debugtoolbar 的移植,目前处于早期开发阶段。已移植基本功能

  • 基本面板

  • 拦截重定向

  • 拦截并格式化打印异常

  • 交互式Python控制台

  • 显示源代码

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

移植面板

HeaderDebugPanelPerformanceDebugPanelTracebackPanelSettingsDebugPanelMiddlewaresDebugPanelVersionDebugPanelRoutesDebugPanelRequestVarsDebugPanelLoggingPanel

需要帮助

您是一名寻找为python/asyncio库贡献项目的程序员吗?这就是您要找的项目!

安装和配置

$ pip install aiohttp_debugtoolbar

为了连接到 aiohttp_debugtoolbar,请在您的应用程序中调用 aiohttp_debugtoolbar.setup

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

完整示例

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)

设置

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

支持选项

  • enabled:如果为False,则禁用debugtoolbar。默认设置为True。

  • intercept_redirects:如果为True,则拦截重定向并显示一个带有重定向页面链接的中间页面。默认设置为True。

  • hosts:允许的主机列表。默认设置为[‘127.0.0.1’,‘::1’]。

  • exclude_prefixes:禁止的主机列表。默认设置为[]。

  • check_host:如果为False,则禁用主机检查并显示任何主机的debugtoolbar。默认设置为True。

  • max_request_history:存储请求的最大值。默认设置为100。

  • max_visible_requests:显示请求的最大值。默认设置为10。

  • path_prefix:debugtoolbar路径的前缀。默认设置为‘/_debugtoolbar’。

谢谢!

我从以下项目中借用了大量代码。我强烈建议您检查它们

玩玩演示

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

需求

变更日志

0.6.1 (2023-11-19)

  • 从请求历史中过滤掉发送到debugtoolbar本身的请求。

  • 通过延迟加载包数据来提高导入时间。

  • 在使用yarl 1.9+时修复了静态URL。

  • 修复了re模块中的警告。

  • 切换到 aiohttp.web.AppKey 以支持aiohttp 3.9。

  • 删除了Python 3.7并添加了Python 3.11。

0.6.0 (2020-01-25)

  • 修复了ClassBasedView支持。#207

  • 删除了aiohttp<3.3支持。

  • 删除了Python 3.4支持。

  • 删除了 yield from@asyncio.coroutine 支持。

0.5.0 (2018-02-14)

  • 向render_content添加了安全过滤器。#195

  • 添加了对aiohtp 3的支持。

0.4.1 (2017-08-30)

  • 修复了没有location头部的重定向问题。#174

0.4.0 (2017-05-04)

  • 添加了asyncio trove分类器。

  • 添加了对aiohttp 2.0.7+的支持。

0.3.0 (2016-11-18)

  • 修复了使用子应用程序时中间件路由查找的问题。#65

  • 为额外的面板添加了示例:pgsql & redis监控器。#59

0.2.0 (2016-11-08)

  • 重构了测试套件。

0.1.4 (2016-11-07)

  • 重命名为aiohttp-debugtoolbar。

  • 修复了与aiohttp 1.1的不兼容性。

0.1.3 (2016-10-27)

  • 修复了请求信息页面的链接,并按字母顺序排序请求信息。#52

0.1.2 (2016-09-27)

  • 修复了性能面板中空函数名称的问题。#43(感谢 @kammala!)

  • 修复了页面渲染过程中的闪烁信息问题。#46

0.1.1 (2016-02-21)

  • 修复了演示。

  • 在回溯视图中添加了语法高亮,将高亮器从highlight.js切换到prism.js。#31

0.1.0 (2016-02-13)

  • 添加了对Python 3.5的支持。(感谢 @stormandco!)

  • 在RoutesDebugPanel中添加了查看源代码按钮。(感谢 @stormandco!)

  • 删除了对Python 3.3的支持。(感谢 @sloria!)

  • 在setup方法中添加了中间件。(感谢 @sloria!)

  • 修复了交互式控制台的问题。

  • 修复了对aiohttp>=0.21.1的支持。

0.0.5 (2015-09-13)

  • 修复了IPv6套接字家族错误。(感谢 @stormandco!)

0.0.4 (2015-09-05)

  • 修复了对aiohttp>=0.17的支持。(感谢 @himikof!)

0.0.3 (2015-07-03)

  • 将模板引擎从mako切换到jinja2。(感谢 @iho!)

  • 添加了自定义 yield from 以跟踪协程内部的上下文切换。

  • 实现了收集请求日志消息的面板。

  • 对于非web.Response答案(例如StreamResponse或WebSocketResponse),禁用工具栏代码注入。#12

0.0.2 (2015-05-26)

  • 重新设计UI外观。

  • toolbar_middleware_factory 重命名为 middleware

0.0.1 (2015-05-18)

  • 初始发布。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

aiohttp-debugtoolbar-0.6.1.tar.gz (451.1 kB 查看散列值)

上传时间

构建分发

aiohttp_debugtoolbar-0.6.1-py3-none-any.whl (466.1 kB 查看散列值)

上传时间 Python 3