flask之配置文件
一、配置文件
在 Flask 中,引入配置文件有多种方式。大体就是从当前的app文件、指定的配置文件、环境变量、外部配置中心四处去取
1、直接在app中修改,只能改以下两个
app.debug=True app.secret_key='asdfasdf'
2、app.config.from_pyfile()
这是最常用的方法之一,可以加载一个 Python 符合格式的配置文件。
from flask import Flask app = Flask(__name__) app.config.from_pyfile('config.py') # config.py 示例内容 # DEBUG = True # DATABASE_URI = 'sqlite:///example.db'
3、app.config.from_object()
可以用来导入一个配置类或模块。
app.config.from_object('settings.ProductionConfig') # app.config.from_object('settings.DevelopmentConfig') print(app.config.get('REDIS_PORT')) # settings.py 中配置好类 class Config(object): DEBUG = False REDIS_HOST = '127.0.0.1' REDIS_PORT = 6379 # 生产环境 class ProductionConfig(Config): REDIS_HOST = '192.168.1.13' REDIS_PORT = 6380 # 开发环境 class DevelopmentConfig(Config): DEBUG = True
4、app.config.from_envvar()
从环境变量指定的路径加载配置文件。这对于在不同的环境中(如开发、测试、生产)使用不同的配置特别有用。
import os from flask import Flask app = Flask(__name__) app.config.from_envvar('APP_CONFIG_FILE') # 在运行之前,定义环境变量 # export APP_CONFIG_FILE=/path/to/config.py
5、app.config.from_json()
直接从 JSON 格式的文件加载配置。
app = Flask(__name__) app.config.from_json('config.json') # config.json 示例内容 # { # "DEBUG": true, # "DATABASE_URI": "sqlite:///example.db" # }
6、app.config.from_mapping()
直接传递一个字典来设置配置。这种方法适合于小型项目或快速原型。
app = Flask(__name__) app.config.from_mapping( DEBUG=True, DATABASE_URI='sqlite:///example.db' )
7、组合方式
可以组合多种方式引入配置,实现更灵活的配置管理。例如,你可以首先从环境变量加载配置,然后再从硬编码的配置文件覆盖某些设置。
app = Flask(__name__) app.config.from_envvar('APP_CONFIG_FILE') # 从环境变量加载 app.config.from_pyfile('config.py') # 再从配置文件加载
8、从配置中心的api去取