SuperAPI AI 工具集

python-configuration

编程与开发

查看项目

更新于 10-15 23:42

技能介绍

用途:把环境相关配置从代码中外部化,用环境变量和类型化设置让同一份代码在不同环境运行而无需修改。适用于搭建新项目配置系统、从硬编码迁移到环境变量、实现 pydantic-settings、管理密钥、创建分环境设置、在启动时校验配置。

主要能力:核心概念包括外部化配置、类型化设置、快速失败、合理默认值。基础用法是定义继承 BaseSettings 的 Settings 类,用 Field(alias=...) 绑定环境变量,例如 database_url: str = Field(alias="DATABASE_URL"),再实例化 settings = Settings() 从环境读取。

常见模式:用 try/except ValidationError 在启动时快速失败并打印清晰错误;为本地开发提供默认值,但密钥不设默认;用 DB_、REDIS_、AUTH_、FEATURE_ 等前缀命名空间;Pydantic 自动做类型转换,也可用 field_validator 解析逗号分隔列表;用 Environment 枚举与 computed_field 区分环境;用嵌套模型配合 env_nested_delimiter="__" 组织分组;用 secrets_dir 读取容器挂载密钥;用 model_validator 做复杂校验。

注意事项:pydantic-settings 在类导入时读取环境,导入后再 monkeypatch 会看到缓存值;嵌套 BaseSettings 需显式设置 env_nested_delimiter;SecretStr 只在 repr 中脱敏,str 与 f-string 会泄露;.env 先读、进程环境后覆盖;Pydantic v1 与 v2 的 BaseSettings API 不同,混用可能静默出错。密钥不应提交,.env 需加入 .gitignore。