在 app.config中添加配置
除了 Debug、Host、Port 这 3 个配置项比较特殊外,其他的配置参数都需要配置到 Flask 对象的 app.config 属性中,在配置参数较多的情况下,还会放到配置文件中。以下分别来进行讲解。
使用 app.config 配置
app.config 是 Config 的对象,Config 是一个继承自字典的子类,所以可以像操作字典一样操作它。使用 app.config 必须要注意的一点是,所有配置项的名称都必须大写,否则不会被 app.config 读取到,示例代码如下。
app = Flask(__name__)
app.config["SECRET_KEY"] = "skhrek349Lx!@# "
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///test.db"
# 下面的配置项为小写,不会被读取
app.config["test"] = True
app.config 中的配置项,可以设置 Flask 及其插件内置的一些配置项,也可以添加自定义的配置项。如果后续开发中需要用到 app.config 中提前配置好的选项,那么可以通过类似字典的方式获取,示例代码如下。
app = Flask(__name__)
app.config["TESTING"] = True
...
test = app.config["TESTING"]
使用 app.config 的方式配置项目,在项目体量较小的情况下比较方便,但是随着项目开发的复杂度越来越高,配置项也越来越多,使用 app.config 配置的方式就显得代码不够优雅,并且会让 app.py 文件越来越臃肿。因此企业开发中的项目都会使用配置文件。接下来讲解如何使用配置文件。
使用 Python 配置文件
首先,在当前项目(section01)文件夹下创建一个名为 config.py 的文件,这个文件专门用来存放配置选项。如在 config.py 中添加以下代码。
# config.py文件
TOKEN_KEY = "123456"
然后,在 app.py 中添加以下代码。
# app.py文件
import config
app = Flask(__name__)
app.config.from_object(config)
...
print(app.config["TOKEN_KEY"])
运行项目后可以看到控制台会打印 123456,这说明使用 Python 配置文件也可以添加配置项。
app.config.from_object 除了直接使用导入的 Python 模块以外,还可以通过字符串的形式加载,示例代码如下。
# app.py文件
app = Flask(__name__)
app.config.from_object("config")
Flask 还有许多其他的方式来添加配置文件,如 app.config.from_file 和 app.config.from_json,这里就不再一一展开讲解了,感兴趣的读者可以自行阅读 Flask 的官方文档 https://flask.palletsprojects.com/en/2.0.x/config/ 进行学习研究。