Flask-DebugToolbar
该扩展为 Flask 应用程序添加了一个包含有用的调试信息的工具栏。
安装
简单地使用 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 时间分解。
HTTP 头
flask_debugtoolbar.panels.headers.HeaderDebugPanel
显示了目前请求的 HTTP 头。
Request 变量
flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel
展现了 Flask 请求相关的变量的细节,包含视图函数变量,会话变量,以及 GET 和 POST 变量。
配置
flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel
显示了 Flask 应用程序配置字典 app.config
的内容。
模板
flask_debugtoolbar.panels.template.TemplateDebugPanel
显示关于为某个请求渲染模板的信息,以及提供的模板参数的值。
SQLAlchemy
flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel
显示了当前请求过程中运行的 SQL 查询。
Note
为了记录查询,这个面板需要使用 Flask-SQLAlchemy 扩展。 请查看 Flask-SQLAlchemy 的 Quickstart 章节来配置它。
更多关于查询记录的信息请查看文档 get_debug_queries()
。
日志
flask_debugtoolbar.panels.logger.LoggingPanel
显示了当前请求的日志信息
路由列表
flask_debugtoolbar.panels.route_list.RouteListDebugPanel
显示了 Flask URL 路由规则。
分析/探查
flask_debugtoolbar.panels.profiler.ProfilerDebugPanel
报告当前请求的分析/探查数据。由于性能的考虑,默认情况下分析/探查是禁用的。单击点中选择分析/探查的标记来决定开启或者关闭。在启用分析/探查后,重新刷新页面来运行分析/探查。
贡献
Fork 我们在 GitHub 上。
感谢
本扩展是基于 django-debug-toolbar 。多谢 Michael van Tellingen 为了这个 Flask 扩展最初的开发,并且感谢 individual contributors 中的每一个人。