跳转到主要内容

一个为Pyramid应用程序开发提供交互式HTML调试器的包

项目描述

pyramid_debugtoolbar 为开发 Pyramid 应用程序提供了一个有用的调试工具栏。

请注意,pyramid_debugtoolbar 是 Michael van Tellingen 的 flask-debugtoolbar(它本身是从 Rob Hudson 的 django-debugtoolbar 衍生而来)的一个明显的仿制品。它还包括了 Armin Ronacher 和团队略微打磨过的 Werkzeug 调试器代码。

文档

pyramid_debugtoolbar 当前稳定版本的文档可在 https://docs.pylonsproject.org/projects/pyramid-debugtoolbar/en/latest/ 找到。

演示

为了演示

  • 克隆 pyramid_debugtoolbar 的 trunk。

    $ git clone https://github.com/Pylons/pyramid_debugtoolbar.git
  • 在工作区中创建一个虚拟环境。

    $ cd pyramid_debugtoolbar
    $ python3 -m venv env
  • pyramid_debugtoolbar 的 trunk 安装到虚拟环境中。

    $ env/bin/pip install -e .
  • pyramid_debugtoolbar/demo 包安装到虚拟环境中。

    $ env/bin/pip install -e demo
  • 使用虚拟环境中的 Python 运行 pyramid_debugtoolbar 包的 demo/demo.py 文件。

    $ env/bin/python demo/demo.py

在网页浏览器中访问 http://localhost:8080,查看一个充满测试选项的页面。

测试

如果您已安装 tox,请使用以下命令运行所有测试:

$ tox

仅运行特定 Python 环境

$ tox -e py311

如果您未安装 tox,您可以安装测试需求,然后运行测试。

$ python3 -m venv env
$ env/bin/pip install -e ".[testing]"
$ env/bin/py.test

构建文档

如果您已安装 tox,请使用以下命令构建文档:

$ tox -e docs

如果您未安装 tox,您可以安装构建文档的需求,然后构建它们。

$ env/bin/pip install -e ".[docs]"
$ cd docs
$ make clean html SPHINXBUILD=../env/bin/sphinx-build

4.12.1 (2024-02-04)

  • 修复在页面加载时,没有可见请求时工具栏崩溃的问题。

  • 修复工具栏可能在不受支持的请求生命周期之外的时间访问敏感请求属性(如 request.authenticated_userid)的问题。

4.12 (2024-02-03)

4.11 (2024-01-27)

4.10 (2022-01-02)

4.9 (2020-11-24)

  • 支持 Python 3.9。

  • 增加了一个新的会话面板来跟踪在请求生命周期中注册的ISession接口的入出变化。默认情况下,该面板仅通过包装加载器对访问的会话进行操作。用户可以通过工具栏设置或请求特定的cookie激活会话面板,以跟踪所有请求的入出数据。

    • 从请求变量面板中移除了“会话”部分。

    • 更新了文档和截图。

  • 确保只有在存在响应对象时,头信息面板才会运行,以便在其他面板遇到错误时创建更好的堆栈跟踪。

  • utils.dictrepr在遇到TypeError时现在会回退到键的字符串比较,这可能在Python3中发生。

    • 添加了一个测试来检查是否在Python3下发生排序错误。如果将来测试失败,这个解决方案可能就不再需要了。

  • 更新了工具栏javascript,以更好地处理多个用户激活的面板。

    • splitjoin函数现在使用相同的分隔符。

    • 如果浏览器支持,则使用“集合”来去重活动面板。

  • 在toolbar.js和toolbar.py中添加内联注释,以提醒未来的开发者关于字符串分隔符和cookie名称。

4.8 (2020-10-23)

4.7 (2020-10-22)

4.6.1 (2020-02-10)

4.6 (2020-01-20)

4.5.2 (2020-01-06)

4.5.1 (2019-11-08)

  • 添加Python 3.8支持。

  • 修复Python 3.7上的内部弃用警告。

4.5 (2018-09-09)

4.4 (2018-02-19)

4.3.1 (2018-01-28)

4.3 (2017-07-14)

  • 日志面板指示器现在使用颜色编码,以指示日志消息的严重性以及该级别的消息数量。可能有更多消息,但最严重的将显示在注释中。

    此功能还向< span class="docutils literal">DebugPanel API添加了一个新的< span class="docutils literal">nav_subtitle_style 钩子,用于向副标题标签添加自定义CSS类。

    https://github.com/Pylons/pyramid_debugtoolbar/pull/322

4.2.1 (2017-06-30)

4.2 (2017-06-21)

此版本包含底层异常/跟踪记录机制的重新编写,并修复了由于4.1版本发布而导致的交互式调试器故障的回归。见https://github.com/Pylons/pyramid_debugtoolbar/pull/318

  • 跟踪现在与每个请求的工具栏对象一一对应。一个请求可能只有一个跟踪。之前它们实际上会在整个应用程序的生命周期中保留,而不是由max_request_history设置收集。

  • 异常路由已标准化,以类似于SQLA AJAX路由的外观。例如,/{request_id}/exception 而不是 /exception?token=...&tb=.../{request_id}/exception/execute/{frame_id}?cmd=... 而不是 /exception?token=...&tb=...&frm=...&cmd=...

  • 修复了跟踪底部链接的URL生成...它实际上之前是空的 - 它在某个地方丢失了。

  • /favicon.ico不再特别处理..它只是像任何其他要排除的内容一样,是exclude_prefixes的一部分。

  • request.pdtb_history 在工具栏请求(主要是AJAX请求或面板渲染)中可用。

  • 删除了未使用的记录谓词。

  • debugger.js 中的URL生成有问题,但现在已修复,因此执行/源按钮可以在跟踪中正常工作。

  • 从4.1中删除了ipaddr模块的许可证。见https://github.com/Pylons/pyramid_debugtoolbar/pull/315

4.1 (2017-05-30)

4.0.1 (2017-05-09)

4.0 (2017-05-03)

  • 配置设置 debugtoolbar.panelsdebugtoolbar.extra_panelsdebugtoolbar.global_panelsdebugtoolbar.extra_global_panels 现在接受在 pyramid_debugtoolbar.panels.DebugPanel.name 中定义的面板名称。因此,您可以使用如 performanceheaders 等名称。这些设置仍然支持点分Python路径,但建议现在通过 debugtoolbar.includesconfig.add_debugtoolbar_panel 来包含面板,以便它们可以自动添加到工具栏中。请参阅https://github.com/Pylons/pyramid_debugtoolbar/pull/288

  • 添加了一个新的 config.add_debugtoolbar_panel 指令,可以从通过 debugtoolbar.includes 设置包含的 includeme 函数中调用。这些面板将自动添加到默认面板列表中,并应该成为定义工具栏面板的未来方式。请参阅https://github.com/Pylons/pyramid_debugtoolbar/pull/283

  • 添加了一个新的 config.inject_parent_action 指令,可以从通过 debugtoolbar.includes 设置包含的 includeme 函数中调用。这些操作在父配置创建之前被调用,以便操作可以检查/包装现有的配置。请参阅https://github.com/Pylons/pyramid_debugtoolbar/pull/288

  • 添加了“粘性”面板功能,允许选定的面板通过cookies在页面之间持久存在。如果带cookie的面板没有可用于显示的内容,则将显示第一个非禁用面板。如果带cookie的面板在工具栏上未启用,则将显示第一个非禁用面板,并且将成为新的默认面板。请参阅https://github.com/Pylons/pyramid_debugtoolbar/pull/272

  • 向javascript添加了 CustomLoggerFactory,用于PR 272的开发。此javascript工厂允许面板开发人员和维护人员在开发期间使用详细的控制台日志记录,按功能分区,并在部署时保持日志行激活,同时将其静音。

  • 工具栏在您的应用程序中注册了一个 BeforeRender 订阅者,以监视模板的渲染。之前,由于订阅者注册的顺序,工具栏可能会错过渲染信息。现在,工具栏将等待应用程序创建,然后附加一个新订阅者,该订阅者封装了您的应用程序的 BeforeRender 订阅者。请参阅https://github.com/Pylons/pyramid_debugtoolbar/pull/284

  • 在历史标签页html中删除重复的id="${panel.dom_id}"标签。现在只有顶层的<li>标签具有id。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/285

  • 如果应用程序由一个设置environ['wsgi.multiprocess']True的forking/multiprocess wsgi服务器提供服务,则发出警告并禁用工具栏。这应该有助于避免在某些部署(如gunicorn和uwsgi的多进程模式)中出现的混淆问题。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/286

  • 工具栏tween始终显式地放置在pyramid_tm tween之上。

  • 重构所有debugtoolbar面板,使用config.add_debugtoolbar_panel和每个面板的includeme函数进行包含。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/288

  • 公开了一个request.toolbar_panels字典,可以在DebugPanel.render_contentDebugPanel.render_vars中使用它,以在渲染面板时检查和使用其他面板生成的数据。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/291

  • 通过使用Server-Sent-Events polyfill支持在Microsoft Edge和Internet Explorer 8+上流式传输新的请求。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/293

3.0.5 (2016-11-1)

3.0.4 (2016-07-26)

  • 3.0.3是一个缺少静态资源的brownbag发布。

3.0.3 (2016-07-26)

3.0.2 (2016-07-02)

3.0.1 (2016-05-20)

  • 除非用户在正常的请求生命周期中访问它们,否则请避免触摸request.unauthenticated_useridrequest.authenticated_useridrequest.effective_principals。这避免了未经身份验证的请求可能触发您的身份验证策略的副作用或访问属性预期生命周期之外的问题。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/263

3.0 (2016-04-23)

  • 现在工具栏是一个完全独立的应用程序,在tween内部运行。这与额外的隔离有关,存在一些小的兼容性和改进。

    1. pyramid_mako.dbtmako渲染器不再包含在父应用程序(您的应用程序)中。

    2. 面板现在必须格外小心,因为它们仅在render_varsrender_content函数内部渲染模板。这些是唯一可以用于渲染工具栏面板的函数。

    3. 除了通过config.set_debugtoolbar_request_authorization之外,工具栏不会受应用程序可能放置的任何全局安全策略的影响。永远不要在生产环境中运行工具栏

    参见https://github.com/Pylons/pyramid_debugtoolbar/pull/253

  • 更新Bootstrap到v3.3.6,重构了静态资源并删除了require.js。每个页面现在都依赖于它所需要的内容,而不会在调试页面中包含额外的依赖项。参见https://github.com/Pylons/pyramid_debugtoolbar/pull/259

  • 在表格列上启用了交互式排序。请参阅 https://github.com/Pylons/pyramid_debugtoolbar/pull/256

  • 安装代码库时现在需要 setuptools-git 以非可编辑模式。

2.5 (2016-04-20)

2.4.2 (2015-10-28)

2.4.1 (2015-08-12)

2.4 (2015-06-04)

本次发布更改了一些面板 API 的细节,因此如果您为工具栏编写任何自定义面板,请审查这些更改。

2.3 (2015-01-05)

2.2.2 (2014-11-09)

  • 打包了 2.2.1 版本,但忘记包含模板!

2.2.1 (2014-11-09)

2.2 (2014-08-12)

2.1 (2014-05-22)

  • 添加新的 “debugtoolbar.” 配置设置,允许在用户的 .ini 文件中启用或禁用各种 Pyramid 开关。例如,这使得启用/禁用 debugtoolbar 的模板重新加载变得简单。

  • 即使父应用程序使用默认权限,也允许工具栏始终显示。请参阅 https://github.com/Pylons/pyramid_debugtoolbar/issues/147

  • 稳定并记录了 pyramid_debugtoolbar.panels.DebugPanel API,以允许开发人员创建自己的面板。

  • 添加了新的 debugtoolbar.extra_panelsdebugtoolbar.extra_global_panels 配置设置,使支持自定义面板而不覆盖默认面板变得简单。

2.0.2 (2014-02-13)

  • 修复了在 Py3k 下运行时的破坏性错误。

2.0.1 (2014-02-12)

  • 修复了在 2.0 版本中预期 pyramid_beaker 存在的漏洞。

2.0 (2014-02-12)

  • 工具栏已进行重大重构,以减轻工具栏内部行为对连接的应用程序的影响,并使检查任意请求成为可能。现在它可在 /_debug_toolbar 处使用,可用于监控任何和所有由包装的 Pyramid 应用程序服务请求,包括非 HTML 响应。

    当请求进入 Pyramid 应用程序时,工具栏将实时更新(通过服务器发送事件在符合规范的浏览器中),可用于调试和同时检查多个请求。

1.0.9 (2013-10-20)

  • 使用新的 pyramid_mako 配置指令 add_mako_renderer。

1.0.8 (2013-09-09)

  • 依赖于 pyramid_mako(Mako 支持将在 1.5+ 中从 Pyramid 中分离)。

1.0.7 (2013-08-29)

1.0.6 (2013-04-17)

  • 仅打包发布版本,没有代码更改。1.0.5是一个brownbag发布,因为tar包中缺少目录。

1.0.5 (2013-04-17)

  • 当request.remote_addr是一个逗号分隔的代理IP列表时,正确解析IP。

  • 如果您也使用require.js,调试工具栏的jQuery版本将不再与您的应用程序的库版本冲突。

  • 在链接中包含原始SQL时,使用“n”过滤器禁用default_filters,仅留下“u”过滤器(URL转义)。

  • 通过config.set_debugtoolbar_request_authorization(callback)支持通过请求授权工具栏中间件,其中回调接受请求对象并返回一个布尔值,表示工具栏是否启用。

  • 防止将二进制查询参数转换为json时的错误。

  • 将sqlalchemy查询持续时间从微秒转换为毫秒。

1.0.4 (2013-01-05)

  • 添加debugtoolbar.excluded_prefixes设置。当URL路径前缀与这些前缀之一匹配时,工具栏将不会显示在结果页面上。

  • 始终显示提示和小文本文件图标,而不是仅在悬停时显示。

  • 不要在结果框上设置最大高度(这会导致页面上的嵌套滚动,使得快速查找信息变得困难)。

  • 当表达式结果很长时,不要使用省略号截断,这需要再点击一次才能获取所需的信息。

  • 支持从GitHub仓库使用pip install,通过在setup.pypackage_data中添加安装所需的全部静态文件。Setuptools通常使用Subversion或CVS来告诉它需要打包到egg分发中的静态文件,但它不支持读取git元数据。

  • 调试工具栏现在使用一个带有独特私有名称的修补版本require.js,该名称不会与dojo加载程序或其他可能已加载在页面上的不兼容版本的require冲突。您不再需要将工具栏添加到自己的require.js中才能使其工作。

1.0.3 (2012-09-23)

  • pyramid_debugtoolbar视图内部使用的自定义谓词valid_host没有使用基于“ipaddr”的新逻辑。症状:如果您使用网络掩码作为“debugtoolbar.hosts”选项,则某些视图可能无法正确访问。

  • 调试控制台现在与Google App Engine兼容。

  • 调试控制台现在通过_添加了一个访问最后一个结果的快捷方式。

1.0.2 (2012-04-19)

  • 将工具栏和调试JavaScript文件移动到使用requirejs以更好地进行依赖项加载和模块隔离,以更好地与多个库版本协同工作。常见问题是异步加载和应用特定的jQuery库,其中期望的版本被工具栏版本覆盖。

    如果您已经使用requirejs并希望加载工具栏,只需将其添加到路径和模块中即可。

    require.config({
      paths: {
        "jquery": "jquery-1.7.2.min",
        "toolbar": "/_debug_toolbar/static/js/toolbar"
      }
    });
    
    require(["jquery", "toolbar"], function($, toolbar) {
      $(function() {
        // your module
      });
    });

1.0.1 (2012-03-27)

  • 如果request.remote_addrNone,则禁用工具栏。

1.0 (2012-03-17)

  • 不要在 SQLAlchemy 面板中 URL 引用 SQL 参数。

  • 允许将 hostmask 值作为 debugtoolbar.hosts 条目(例如 192.168.1.0/24)。

0.9.9.1 (2012-02-22)

  • 当与 Pyramid 1.3a9+ 一起使用时,由 pyramid_debugtoolbar 本身创建的视图、路由和其他注册将不会显示在可检查的面板中。

0.9.9 (2012-02-19)

  • 尝试在 Pyramid 1.3a8+ 中利用 MakoRendererFactoryHelper。如果我们能这样做,工具栏模板就不会受到正常 mako 设置的影响。最明显的更改是工具栏 mako 模板现在具有 dbtmako 扩展。

0.9.8 (2012-01-09)

  • 在“请求头部”面板下显示请求头部,而不是错误地显示环境值。这也解决了潜在的 UnicodeDecodeError。

  • 在替换原始内容的同时重新生成 app_iter 时,在响应对象上设置 content_length。

0.9.7 (2011-12-09)

  • debugtoolbar 的性能面板使用了名为 function_calls 的变量,当不收集统计信息时未初始化。这导致在 mako 渲染具有 strict_undefined 选项的模板时出现 NameError

  • 修复 SQLAlchemy 面板中的 Python 3 兼容性。

  • 让 SQLAlchemy 的 explain 和 select 重新工作。

0.9.6 (2011-12-09)

0.9.5 (2011-11-12)

  • 调整 tox 设置以测试低于 2.5 的旧 Pyramid 和 WebOb 分支。

  • 将所有模板转换为 Mako。

  • 不要依赖 pyramid.compat.json

  • 添加 Tweens 工具栏面板。

0.9.4 (2011-09-28)

  • 升级到 jquery 1.6.4 和 tablesorter 插件 2.0.5b

  • 引入了新的设置 debugtoolbar.button_style。它可以用来覆盖由 toolbar.css 设置的默认样式(top:30px)。

  • 兼容 Python 3.2(需要 Pyramid 1.3dev+)。

  • 平息对设置调试面板中的 __getattr__ 敏感的设置值(例如 MongoDB 数据库)。见 https://github.com/Pylons/pyramid_debugtoolbar/issues/30

0.9.3 (2011-09-12)

  • 现在所有调试工具栏面板和底层视图都可以由完全匿名的用户始终执行,无论可能生效的默认权限如何(对所有调试工具栏视图使用 NO_PERMISSION_REQUIRED 权限)。

  • 工具栏 cookie 设置名称已更改(从 fldt 更改为 p_dt),以避免弄乱同时使用 Flask 调试工具和 Pyramid 的用户。

  • 修复了工具栏在 IE7 和 IE8 中的渲染。

0.9.2 (2011-09-05)

  • 当发生异常时,将异常体记录到调试工具栏记录器中。

  • 不要在日志面板中将根记录器级别重置为 NOTSET(将控制台日志输出改为正常)。

0.9.1 (2011-08-30)

  • debugtoolbar.intercept_exc 设置现在是三态设置。它可以是 debugdisplayfalse 之一。 debug 表示显示带有调试控制的漂亮跟踪页面。 display 表示显示漂亮的跟踪包,但省略调试控制。 false 表示不显示漂亮的跟踪页面。出于向后兼容性的目的, true 表示 debug

  • debugtoolbar.intercept_excdebugdisplay 时,现在将记录每个异常的 URL 到控制台。此 URL 可用于显示异常的“漂亮”跟踪页面。当异常由 AJAX 或非人类驱动的请求引起时,这很有用。此 URL 还被注入到漂亮的跟踪页面(在底部)。

  • 0.9版本中SQL EXPLAIN的“未修复”缩进,当列值不是字符串时破坏了解释页面。

0.9 (2011-08-29)

  • 通过用HTML空格替换空格修复了SQL EXPLAIN的缩进。

  • 在某些用户报告的未定义情况下,response.charset可能是None,这会导致尝试渲染调试工具栏时引发异常。在这种情况下,我们现在假设字符集是UTF-8。

  • 一些请求变量和渲染器值的渲染会引发未捕获的异常。

0.8 (2011-08-24)

  • 尝试应对那些出于某种原因将pstats模块与Python分开打包的愚蠢的Debian Python安装。在这种情况下,关闭性能面板而不是崩溃。

0.7 (2011-08-24)

  • 仅文档更改。

0.6 (2011-08-21)

  • 在注册隐式缓动工厂时不要注册别名(与未来的1.2版兼容)。

0.5 (2011-08-18)

0.4 (2011-08-18)

  • debugtoolbar.intercept_redirects的默认值更改为false。理由:如果正在开发的应用程序具有执行重定向的主页,这会让人困惑。

0.3 (2011-08-15)

  • 在某些情况下,请求变量面板会导致UnicodeDecodeError(见https://github.com/Pylons/pyramid_debugtoolbar/issues/9)。

  • 动态化SQLAlchemy子面板的URL。

  • 安装时需要“pyramid>=1.2dev”;现在的分支是“1.2dev”而不是“1.1.1dev”。

  • 需要2011年8月14日之后的分支:WSGIHTTPException “prepare”方法和添加_tween的alias参数,BeforeRender事件没有“_system”属性。

  • 修复内存泄漏。

  • 现在使用调试工具栏div渲染HTML HTTP异常。

  • 向演示应用程序和selenium测试添加了NotFound页面。

0.2 (2011-08-07)

  • 添加SQLAlchemy的“explain”和“select”页面(从页面中每个查询旁边的SQLAlchemy面板中获取)。

  • 需要更新的Pyramid分支(在2011年8月7日或之后检出)。

  • 从演示应用程序索引页面添加到SQLAlchemy演示页面的链接。

0.1 (2011-07-30)

  • 初始版本。

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源分发

pyramid_debugtoolbar-4.12.1.tar.gz (3.1 MB 查看哈希值)

上传于

构建分发

pyramid_debugtoolbar-4.12.1-py3-none-any.whl (350.8 kB 查看哈希值)

上传于 Python 3

由以下支持