1. 程式人生 > >Flask的配置文件 與 session

Flask的配置文件 與 session

keys ica man handler 不同 不同的 type ons delta

配置文件

flask中的配置文件是一個flask.config.Config對象(繼承字典)

默認配置為:

 {
    ‘DEBUG‘:                                get_debug_flag(default=False),  是否開啟Debug模式
    ‘TESTING‘:                              False,                          是否開啟測試模式
    ‘PROPAGATE_EXCEPTIONS‘:                 None,                          
    ‘PRESERVE_CONTEXT_ON_EXCEPTION‘:        None,
    ‘SECRET_KEY‘:                           None,
    ‘PERMANENT_SESSION_LIFETIME‘:           timedelta(days=31),
    ‘USE_X_SENDFILE‘:                       False,
    ‘LOGGER_NAME‘:                          None,
    ‘LOGGER_HANDLER_POLICY‘:               ‘always‘,
    ‘SERVER_NAME‘:                          None,
    ‘APPLICATION_ROOT‘:                     None,
    ‘SESSION_COOKIE_NAME‘:                  ‘session‘,
    ‘SESSION_COOKIE_DOMAIN‘:                None,
    ‘SESSION_COOKIE_PATH‘:                  None,
    ‘SESSION_COOKIE_HTTPONLY‘:              True,
    ‘SESSION_COOKIE_SECURE‘:                False,
    ‘SESSION_REFRESH_EACH_REQUEST‘:         True,
    ‘MAX_CONTENT_LENGTH‘:                   None,
    ‘SEND_FILE_MAX_AGE_DEFAULT‘:            timedelta(hours=12),
    ‘TRAP_BAD_REQUEST_ERRORS‘:              False,
    ‘TRAP_HTTP_EXCEPTIONS‘:                 False,
    ‘EXPLAIN_TEMPLATE_LOADING‘:             False,
    ‘PREFERRED_URL_SCHEME‘:                 ‘http‘,
    ‘JSON_AS_ASCII‘:                        True,
    ‘JSON_SORT_KEYS‘:                       True,
    ‘JSONIFY_PRETTYPRINT_REGULAR‘:          True,
    ‘JSONIFY_MIMETYPE‘:                     ‘application/json‘,
    ‘TEMPLATES_AUTO_RELOAD‘:                None,
  }

配置方法:

(1) 直接在文件中 寫 app.config[‘xxx‘] = ‘xxx‘

app.config[‘DEBUG‘] = True

PS: 由於Config對象本質上是字典,所以還可以使用app.config.update(...)


    註意:
        某個對象 可以進行 a[‘aa‘] = 111的操作的時候,
            說明   (1) 重寫了 __setitem__ 方法
                      (2) 繼承了 dict

(2) 通過 config對象 的 from_pyfile方法:

    .. 新建一個 settings.py 的文件(統一管理)   :  裏面直接 配置 XXX = 1111
    .. app.config.from_pyfile(‘settings.py‘)

(3) 通過 config 對象的 from_environ 方法 (與上一個類似)

    import os
    os.environ(‘xxxx‘) = ‘settings.py‘

    app.config.from_environ(‘xxxx‘)

(4) 通過 config 對象的 from_object 方法 (導入文件中的一個類,不同的環境用不同的配置文件)

    推薦使用

    app.config.from_object(‘settings.DevConfig‘)  # 開發的配置
    app.config.from_object(‘settings.TestConfig‘) # 測試的配置
    app.config.from_object(‘settings.ProConfig‘)  # 正式的配置

        settings.py :

            class BaseConfig(object):
                xxx = 111   # 公用的配置

            class TestConfig(BaseConfig):
                DB = ‘127.0.0.1‘
            class DevConfig(BaseConfig):
                 DB = ‘xx.x.0x.1‘
            class ProConfig(BaseConfig):
                 DB = ‘xx.0x.0.1‘

使用,獲取 配置的時候:

           from flask import current_app  # 可以獲取當前的 app

           c = current_app.config.get(‘xxx‘)

Flask的配置文件 與 session