init: 项目初始提交 - NeoZQYY Monorepo 完整代码
This commit is contained in:
36
apps/backend/app/config.py
Normal file
36
apps/backend/app/config.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""
|
||||
后端配置加载
|
||||
|
||||
优先级(低 → 高):根 .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")
|
||||
Reference in New Issue
Block a user