在这一篇文章中,对fastapi
框架和pydantic
进行了升级,然后就是各种不兼容,以后再也不敢轻易升级…
pydantic
:从1.10.11
升级到2.5.2
,这里有坑,里面有很多属性都给删除了,而且升级pydantic
后,fastapi
也必须升级,否则底层使用的pydantic
会有问题;fastapi
: 从0.94.0
升级到0.105.0
;
1.介绍
在大型项目中,良好的配置管理是确保系统可维护性和灵活性的关键,FastAPI
官方文档在设置和环境变量: https://fastapi.tiangolo.com/zh/advanced/settings/#_1介绍了两种方式;
1.1 方式一:export
首先使用关键词export
设置配置值,如下:
export APP_NAME="FastAPI学习使用"
然后在代码中使用os.getenv("变量名","默认值")
获取
import os
appName = os.getenv("APP_NAME", "")
print(appName)
上述方式,适合配置比较少的情况,常用的还是下面方式
1.2 方式二: .env+pydantic
在日常工作中比较常用的还是通过.env
来设置配置,并把内容映射到pydantic
对应的模型上,方便读取和管理,下面以这个方式为主进行学习。
2. 安装依赖
2.1 安装python-dotenv
python-dotenv
是一个Python库,用于从文本文件中加载环境变量
$ pip install python-dotenv
2.2 安装pydantic_settings
$ pip install pydantic_settings
3.编写配置
3.1 编写.env
# -------- 服务配置信息 --------
APP_ENV=local
APP_NAME=AI学习
APP_PORT=8080
APP_HOST