Flask 配置方法

Flask 2019-06-14 1312 字 1060 浏览 点赞

第一种:硬编码到代码中

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)


本文由 Guan 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论