天天看點

Flask之app.config

配置處理

您可能需要根據應用程式環境更改不同的設定,例如切換調試模式,設定密鑰以及其他此類特定于環境的操作。
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]/'
    )
               

使用檔案進行單獨配置

  1. 使用檔案名字加載。直接傳入名字就行了(非.py字尾的也可以)
    # silent為True時,如果當配置檔案不存在隻是會傳回False,不抛出異常
    app.config.from_pyfile('settings.py',silent=True)
               
  2. 使用環境變量加載。這種方法依然支援silent參數,獲得路徑後其實還是使用from_pyfile的方式加載的。
    $ export YOURAPPLICATION_SETTINGS='settings.py'
    app.config.from_envvar('YOURAPPLICATION_SETTINGS')