Flask-DebugToolbar

该扩展为 Flask 应用程序添加了一个包含有用的调试信息的工具栏。

_images/example.gif

安装

简单地使用 pip 来安装:

$ pip install flask-debugtoolbar

用法

设置调试工具栏是简单的:

from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)

# the toolbar is only enabled in debug mode:
app.debug = True

# set a 'SECRET_KEY' to enable the Flask session cookies
app.config['SECRET_KEY'] = '<replace with a secret key>'

toolbar = DebugToolbarExtension(app)

当调试模式开启的时候,工具栏会自动地给添加到 Jinja 模板中。在生产环境中,设置 app.debug = False 将会禁用工具栏。

该扩展也支持 Flask 应用的工厂模式,先单独地创建工具栏接着后面为应用初始化它:

toolbar = DebugToolbarExtension()
# Then later on.
app = create_app('the-config.cfg')
toolbar.init_app(app)

配置

工具栏支持多个配置选项:

名称 描述 默认值
DEBUG_TB_ENABLED 启用工具栏? app.debug
DEBUG_TB_HOSTS 显示工具栏的 hosts 白名单 任意 host
DEBUG_TB_INTERCEPT_REDIRECTS 要拦截重定向? True
DEBUG_TB_PANELS 面板的模板/类名的清单 允许所有内置的面板
DEBUG_TB_PROFILER_ENABLED 启用所有请求的分析工具 False, 用户自行开启
DEBUG_TB_TEMPLATE_EDITOR_ENABLED 启用模板编辑器 False

要更改配置选项之一,在 Flask 应用程序配置中像这样设置它:

app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

内置的 Panels

版本

flask_debugtoolbar.panels.versions.VersionDebugPanel

显示已安装的 Flask 版本。展开的视图显示了由 setuptools 发现的所有已安装的包和它们的版本。

时间

flask_debugtoolbar.panels.timer.TimerDebugPanel

显示处理当前请求的时间。展开后的视图包含了用户态和系统态,执行时间,上下文切换的 CPU 时间分解。

_images/screenshot-time-panel.png

HTTP 头

flask_debugtoolbar.panels.headers.HeaderDebugPanel

显示了目前请求的 HTTP 头。

_images/screenshot-headers-panel.png

Request 变量

flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel

展现了 Flask 请求相关的变量的细节,包含视图函数变量,会话变量,以及 GET 和 POST 变量。

_images/screenshot-request-vars-panel.png

配置

flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel

显示了 Flask 应用程序配置字典 app.config 的内容。

_images/screenshot-config-panel.png

模板

flask_debugtoolbar.panels.template.TemplateDebugPanel

显示关于为某个请求渲染模板的信息,以及提供的模板参数的值。

_images/screenshot-template-panel.png

SQLAlchemy

flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel

显示了当前请求过程中运行的 SQL 查询。

Note

为了记录查询,这个面板需要使用 Flask-SQLAlchemy 扩展。 请查看 Flask-SQLAlchemy 的 Quickstart 章节来配置它。

更多关于查询记录的信息请查看文档 get_debug_queries()

_images/screenshot-sqlalchemy-panel.png

日志

flask_debugtoolbar.panels.logger.LoggingPanel

显示了当前请求的日志信息

_images/screenshot-logger-panel.png

路由列表

flask_debugtoolbar.panels.route_list.RouteListDebugPanel

显示了 Flask URL 路由规则。

分析/探查

flask_debugtoolbar.panels.profiler.ProfilerDebugPanel

报告当前请求的分析/探查数据。由于性能的考虑,默认情况下分析/探查是禁用的。单击点中选择分析/探查的标记来决定开启或者关闭。在启用分析/探查后,重新刷新页面来运行分析/探查。

_images/screenshot-profiler-panel.png

贡献

Fork 我们在 GitHub 上。

感谢

本扩展是基于 django-debug-toolbar 。多谢 Michael van Tellingen 为了这个 Flask 扩展最初的开发,并且感谢 individual contributors 中的每一个人。