扩展Flask-DebugToolbar提供了一系列调试功能,能够用来查看请求的SQL语句、配置选项、资源加载状况等信息。这些信息在开发时会很是有用。首先使用pipenv安装Flask-DebugToolbar及其依赖:git
而后实例化扩展提供的DebugToolExtension类,传入程序实例APP,以完成扩展的初始化:sql
from flask immport Flask from flask_debugtoolbar import DebugToolbarExtension app = Flask(__name__) toobar = DebugToolbarExtension(app)
开发时不须要也不建议使用Flask-DebugToolbar。Flask-DebugToolbar只在开启了调试模式时才会启动,因此咱们要确保设置正确的FLASK_ENV环境变量值:开发时设为development;部署时则设为production。另外,Flask-DebugToolbar会拦截重定向请求,将DEBUG_TB_INTERCEPT_REDIRECTS配置变量设为False能够关闭这个特性shell
DEBUG_TB_INTERCEPT_REDIRECTS = false
这时启动程序,就会发现页面右侧多了一个工具栏,单击“Hide”按钮能够隐藏为一个浮动按钮,以下所示:数据库
在调试工具栏中,除了Flask版本以及页面的加载时间信息,右侧的功能选项分别为:HTTP首部、请求相关变量、配置变量、模板渲染记录、数据库查询记录、日志、路由列表、性能分析器。flask
在Flask中,开发和部署时一般须要不一样的配置。好比,存储在SECRET_KEY配置变量的秘钥,在开发时可使用占位字符,但在生产环境下部署时则须要使用一个随机生成的字符串。为了区分,咱们一般会有两种组织这种分离的方式。app
使用调试工具查看程序配置ide
为了将配置和程序分离开来,建议经过环境变量来保存配置,而且对不一样场景下的配置进行分离。工具
.env和.flaskenv文件能够存储环境变量,对于包含敏感信息的配置,咱们优先或仅从环境变量中读取,这些环境变量统一在.env文件中定义,从而实现了敏感配置的分离。经过在.gitignore中添加这个文件,不会被提交进Git仓库。性能
为了方便存储开发和部署时的各种文件,Flask提供了实例文件夹支持(instance folder),咱们能够在项目根目录(程序包旁)中建立一个名称为instance的文件夹,在这个文件夹中存储开发或部署时使用的配置文件,包含敏感信息的文件,或是临时建立的数据库文件等。spa
若是将这个实例文件夹放到.gitignore文件夹中,能够确保不会被提交到Git仓库中。
当使用示例文件夹存储配置时,一个方便的作法是把包含敏感数据的配置放到instance文件夹的配置文件中,外部只保留通用的公开配置。Flask容许加载屡次配置,重复的配置以最后定义的配置为准,因此咱们可使用instance文件夹中的配置来覆盖通用配置:
app = Flask(__name__, instance_relative_config=True) app.config.from_object('config') # 通用配置 app.config.from_pyfile('config.py') # instance文件夹下的配置
在建立程序实例时,咱们将instance_relative_config参数设为True,这会告诉Flask咱们的配置文件路劲是相对于实例文件夹的(默认是相对于程序实例根目录的)。
临时的数据库文件能够放到实例文件夹中,实例文件夹的路径能够经过app.instance_path属性获取,因此你可使用下面的方法构建数据库URI:
SQLALCHEMY_DATABASE_URI = ‘sqlite:///’ + os.path.join(app.instance_path, ‘data.db’)
Flask不会自动建立实例文件夹,因此你须要手动建立。在单脚本程序中,实例文件夹在脚本旁建立;在使用程序包的程序中,实例文件夹在程序包旁建立。
当咱们使用flask shell命令时,输出的信息会给出实例文件夹的合适位置。