1. 程式人生 > 其它 >7 flask之配置檔案

7 flask之配置檔案

flask配置檔案

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.debug = True

2 方式二

app.config['DEBUG'] = True

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

3 方式三

1.通過py檔案配置

#通過py檔案配置
app.config.from_pyfile("python檔名稱")
如:
settings.py
DEBUG = True

app.config.from_pyfile("settings.py")

2.通過環境變數配置

#通過環境變數配置
app.config.from_envvar("環境變數名稱")
#app.config.from_pyfile(os.environ['YOURAPPLICATION_SETTINGS'])
環境變數的值為python檔名稱名稱,內部呼叫from_pyfile方法

3.json檔案

app.config.from_json("json檔名稱")
JSON檔名稱,必須是json格式,因為內部會執行json.loads

4.字典格式

app.config.from_mapping({'DEBUG': True})

4 方式四(常用)

app.config.from_object("python類或類的路徑")

app.config.from_object('pro_flask.settings.TestingConfig')

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

PS: settings.py檔案預設路徑要放在程式root_path目錄,如果instance_relative_config為True,則就是instance_path目錄(Flask物件init方法的引數)