擴展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命令時,輸出的信息會給出實例文件夾的合適位置。