用途:把环境相关配置从代码中抽离,通过环境变量与类型化设置让同一份代码在不同环境运行而无需修改。适用于搭建新项目配置系统、从硬编码迁移到环境变量、使用 pydantic-settings 实现类型化配置、管理密钥与敏感值、创建按环境区分的设置(dev/staging/prod)、在应用启动时校验配置。
主要能力:核心概念包括配置外置、类型化设置、快速失败、合理默认值。基础用法是定义继承 BaseSettings 的 Settings 类,用 Field(alias=...) 映射环境变量,例如 database_url、api_key、debug,实例化时从环境读取。支持在模块加载时创建单例并捕获 ValidationError 后 sys.exit(1)。
常见模式:必填项无默认值,缺失即启动报错并打印清晰错误;本地开发提供默认值但密钥始终必填;用 DB_、REDIS_、AUTH_、FEATURE_ 等前缀命名空间便于调试;Pydantic 自动做类型转换,可用 field_validator 解析逗号分隔列表;用 Environment 枚举与 computed_field 区分环境;用 env_nested_delimiter="__" 支持嵌套配置组;用 secrets_dir 从挂载文件读取密钥;用 model_validator 做复杂校验。
使用方式:安装并导入 pydantic_settings 与 pydantic,定义 Settings 类,通过 model_config 指定 env_file=".env" 与编码,在应用各处导入 settings 单例而非散落调用 os.getenv()。
限制与注意:.env 不应提交,需加入 .gitignore;密钥应使用 .env 或密钥管理器;README 应记录所有必需环境变量;启动时尽早校验。资料未提供具体安装命令、版本要求与价格信息。