配置處理
您可能需要根據應用程式環境更改不同的設定,例如切換調試模式,設定密鑰以及其他此類特定于環境的操作。
Flask的設計方式通常要求配置在應用程式啟動時可用。您可以在代碼中對配置進行寫死,這對于許多小型應用程式實際上并不那麼糟糕,但是有更好的方法。與如何加載配置無關,有一個可用的配置對象儲存已加載的配置值: 對象的config屬性Flask。
這是Flask本身放置某些配置值的地方,也是擴充可以放置其配置值的地方。但這也是您可以擁有自己的配置的地方。
- config實際上是一本字典的一個子類,并可以修改,就像任何詞典(app.config其實是執行個體化了flask.config.Config類的執行個體)
# __name__是本檔案名字, # Flask類裡面,會根據此名字,找到app.py所在目錄,即預設為根目錄。 app = Flask(__name__) app.config['TESTING'] = True
- 這些配置,會轉發到flask, 是以是以您可以從那裡讀取和寫入它們:
- 要一次更新多個鍵,可以使用以下dict.update() 方法:
app.config.update( TESTING=True, SECRET_KEY=b'_5#y2L"F4Q8z\n\xec]/' )
使用檔案進行單獨配置
- 使用檔案名字加載。直接傳入名字就行了(非.py字尾的也可以)
# silent為True時,如果當配置檔案不存在隻是會傳回False,不抛出異常 app.config.from_pyfile('settings.py',silent=True)
- 使用環境變量加載。這種方法依然支援silent參數,獲得路徑後其實還是使用from_pyfile的方式加載的。
$ export YOURAPPLICATION_SETTINGS='settings.py' app.config.from_envvar('YOURAPPLICATION_SETTINGS')