除了Debug、Host、Port这3个配置项比较特殊外,其他的配置参数都需要配置到Flask对象的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文件越来越臃肿。因此企业开发中的项目都会使用配置文件。接下来讲解如何使用配置文件。
首先,在当前项目(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/进行学习研究。