1. 程式人生 > >Flask - 配置文件

Flask - 配置文件

ngs memory 對象 bject 方法 環境 配置 secret AS

一. 配置文件

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[‘DEBUG‘] = True  或者 app.debug = True
 
    由於Config對象本質上是字典,所以還可以使用app.config.update(...)

方法2

    app.config.from_pyfile("python文件名稱")
        如:
            settings.py
                DEBUG = True
 
            app.config.from_pyfile("settings.py")
 
    app.config.from_envvar("環境變量名稱")
        環境變量的值為python文件名稱名稱,內部調用from_pyfile方法
 
 
    app.config.from_json("json文件名稱")
        JSON文件名稱,必須是json格式,因為內部會執行json.loads
 
    app.config.from_mapping({‘DEBUG‘:True})
        字典格式

方法3,常用,app.config.from_object("python類或類的路徑")

settings.py

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = ‘sqlite://:memory:‘


class ProductionConfig(Config):
    DATABASE_URI = ‘mysql://user@localhost/foo‘
 

class DevelopmentConfig(Config):
    DEBUG = True


class TestingConfig(Config):
    TESTING = True

hello.py

app.config.from_object(‘settings.DevelopmentConfig‘)

Flask - 配置文件