第一种:硬编码到代码中
app = Flask(__name__)
# 配置硬编码
app.config.update(
DEBUG=True
)
...
app.config 是 flask.config.Config 类的实例,继承自 Python 内置数据结构 dict,因此还可以:
app.config["DEBUG"] = True
第二种:from_object
# settings.py
DEBUG = True
# main.py
app.config.from_object("settings") # 模块名字
# 或者
import settings
app.config.from_object(settings) # 模块对象
此方法必须保证 settings.py 是模块。
第三种:from_pyfile
# settings
DEBUG = True
# main.py
app.config.from_pyfile("settings", silent=True)
from_pyfile() 方法接收文件名字(可以不是 py 文件)。silent = True
表示开启静默模式:当配置文件不存在时,程序会抛异常,静默模式开启后,函数只返回 False。
第四种:from_envvar
# settings
DEBUG = True
# main.py
app.config.from_envvar("GUAN")
# 终端
$ export GUAN="settings" # 变量名可以任意
$ py3 main.py
通过加载环境变量,读取配置文件。同时也支持使用 silent 开或关静默模式。在 from_envvar 内部,借助 from_pyfile 实现了解析配置信息。
# flask 源码
class Config:
...
def from_envvar(self, variable_name, silent=False):
rv = os.environ.get(variable_name)
if not rv:
if silent:
return False
raise RuntimeError("...")
return self.from_pyfile(rv, silent=silent)
还不快抢沙发