用途:把环境相关配置从代码中外部化,用环境变量与类型化设置让同一份代码在不同环境运行而无需修改。适用于搭建新项目配置系统、从硬编码迁移到环境变量、用 pydantic-settings 实现类型化配置、管理密钥与敏感值、创建按环境区分的设置(dev/staging/prod),以及在应用启动时校验配置。
核心概念:外部化配置(URL、密钥、功能开关均来自环境变量);类型化设置(启动时解析校验为类型化对象);快速失败(启动即校验必需配置,缺失立即报错);合理默认值(本地开发有默认,敏感项必须显式提供)。
主要能力与用法:用 pydantic-settings 的 BaseSettings 与 pydantic 的 Field 定义集中设置类,通过 alias 映射环境变量,model_config 指定 env_file 加载 .env;必需项无默认值,缺失时捕获 ValidationError 并 sys.exit(1);为本地开发提供默认值,密钥始终必填;用前缀命名变量(DB_、REDIS_、AUTH_、FEATURE_)便于调试;支持类型转换(布尔、整数、逗号分隔列表)、环境枚举与 computed_field、嵌套模型(env_nested_delimiter 用双下划线)、从文件读取密钥(secrets_dir,如 /run/secrets)、自定义 model_validator 校验。
最佳实践:不硬编码配置;使用类型化设置与校验;启动即失败;提供开发默认值;不提交密钥(.env 加入 .gitignore 或用密钥管理器);命名空间化变量;导入 settings 单例而非到处调用 os.getenv();在 README 记录所有变量;尽早校验;容器中用 secrets_dir 支持挂载密钥。
限制:资料未提供该技能的安装命令、收费、平台支持与具体版本要求,暂未提供。