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