""" 后端配置加载 优先级(低 → 高):根 .env → 应用 .env.local → 环境变量 敏感值(DSN、Token)禁止提交,仅放在 .env / .env.local 中。 """ import os from pathlib import Path from dotenv import load_dotenv # 根 .env(公共配置) _root_env = Path(__file__).resolve().parents[3] / ".env" load_dotenv(_root_env, override=False) # 应用级 .env.local(私有覆盖,优先级更高) _local_env = Path(__file__).resolve().parents[1] / ".env.local" load_dotenv(_local_env, override=True) def get(key: str, default: str | None = None) -> str | None: """从环境变量读取配置值。""" return os.getenv(key, default) # ---- 数据库连接参数 ---- DB_HOST: str = get("DB_HOST", "localhost") DB_PORT: str = get("DB_PORT", "5432") DB_USER: str = get("DB_USER", "") DB_PASSWORD: str = get("DB_PASSWORD", "") APP_DB_NAME: str = get("APP_DB_NAME", "zqyy_app") # ---- 通用 ---- TIMEZONE: str = get("TIMEZONE", "Asia/Shanghai") LOG_LEVEL: str = get("LOG_LEVEL", "INFO")