1.环境变量基础概念
1 2 3 4 5
| $ export DATABASE_URL="sqlite:///test.db"
$ $Env:DATABASE_URL = "sqlite:///test.db"
|
- 环境变量是存储在操作系统中的键值对
- 常用于管理数据库连接、API密钥等敏感配置
- 支持跨平台操作(Linux/Windows/macOS)
2.读取环境变量
1 2 3 4 5
| import os
db_url = os.getenv("DATABASE_URL", "sqlite:///default.db") print(f"Database URL: {db_url}")
|
os.getenv() 方法支持默认值设置
- 未设置环境变量时返回
None或自定义默认值
- 适用于临时调试和长期配置管理
3.应用场景示例
graph LR
A[代码开发] --> B{环境变量}
B --> C[本地测试配置]
B --> D[生产环境配置]
B --> E[敏感信息隔离]
- 典型使用场景:
- 数据库连接字符串管理
- 第三方API密钥存储
- 运行模式切换(开发/生产)
- 日志级别配置
4.临时环境变量设置
1 2 3 4 5
| $ DATABASE_URL="sqlite:///temp.db" python app.py
> $Env:DATABASE_URL="sqlite:///temp.db"; python app.py
|
- 生命周期仅限当前命令执行期间
- 不会污染系统环境变量
- 适合快速测试不同配置场景
5.类型与验证
1 2 3
| max_conn = int(os.getenv("MAX_CONNECTIONS", "10")) debug_mode = os.getenv("DEBUG", "False").lower() == "true"
|
- 环境变量值始终为字符串类型
- 需手动转换数值/布尔类型
- 建议结合Pydantic进行高级验证
提示:在FastAPI等框架中推荐使用pydantic.BaseSettings进行环境变量管理,实现类型自动转换和验证