Z
ZHANK
编程在线教程Python 教程配置与环境变量
常用第三方库

配置与环境变量

python-dotenv 加载 .env、os.environ、pydantic-settings

配置与环境变量

把密钥和配置硬编码在代码里是安全灾难。.env 文件 + python-dotenv 是标准方案。

学完本章你将: 掌握 dotenv 加载 .env、os.environ、pydantic-settings。


python-dotenv

python
# .env 文件(不提交到 Git)
# DATABASE_URL=postgresql://user:pass@localhost/db
# API_KEY=sk-xxxxx
# DEBUG=true

from dotenv import load_dotenv
import os

load_dotenv()  # 加载 .env 到 os.environ

db_url = os.getenv("DATABASE_URL")
api_key = os.getenv("API_KEY")
debug = os.getenv("DEBUG", "false").lower() == "true"

.gitignore

# .gitignore
.env
.env.local
.env.production

多环境配置

python
# 根据环境加载不同文件
import os
from dotenv import load_dotenv

env = os.getenv("APP_ENV", "development")
load_dotenv(f".env.{env}")

pydantic-settings —— 类型安全的配置

python
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    database_url: str
    api_key: str
    debug: bool = False
    max_connections: int = 10

    class Config:
        env_file = ".env"  # 自动从 .env 加载

settings = Settings()
print(settings.database_url)
# 类型自动转换:debug 是 bool, max_connections 是 int

💡 pydantic-settings 提供类型验证、默认值、自动转换——比手写 os.getenv 安全得多。