在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。
大多数这些设置都是可变的(可以更改),例如数据库 URL,很多可能是敏感数据,比如密码
出于这个原因,通常在应用程序读取的环境变量中提供它们
Pydantic Settings
Pydantic 提供了一个很好的实用程序来处理环境变量的设置
从 Pydantic 导入 BaseSettings 并创建一个子类,非常类似于 Pydantic 的 BaseModel
与 Pydantic Model 一样,可以使用类型注释和默认值声明类属性
可以使用和 Pydantic Model 的所有相同验证功能和工具,例如不同的数据类型和使用 Field()
#!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/10/9 7:25 下午 # file: 52_settings_env.py """ import os import uvicorn from fastapi import FastAPI from pydantic import BaseSettings class Settings(BaseSettings): app_name: str = "Awesome API" admin_email: str items_per_user: int = 50 settings = Settings() app = FastAPI() @app.get("/info") async def info(): return { "app_name": settings.app_name, "admin_email": settings.admin_email, "items_per_user": settings.items_per_user, }