7 flask之配置檔案
阿新 • • 發佈:2022-03-23
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')
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方法的引數)