"""3D 模块服务端配置:路径、端口与数据库。""" import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent # 3d/backend MODULE_DIR = BASE_DIR.parent # 3d MODELS_DIR = MODULE_DIR / "models" DATA_DIR = MODULE_DIR / "data" DATA_FILE = DATA_DIR / "color_state.json" SCENE_CSV = DATA_DIR / "scene_positions.csv" FAULT_MAP_CSV = DATA_DIR / "fault_part_map.csv" FRONTEND_DIST = MODULE_DIR / "frontend" / "dist" # 数据库凭据沿用项目根目录的 数据库.md(与 backend/app/config.py 同源,不复制到代码里)。 _DB_NOTE = BASE_DIR.parents[1] / "数据库.md" def _db_values() -> dict[str, str]: values: dict[str, str] = {} if not _DB_NOTE.exists(): return values for line in _DB_NOTE.read_text(encoding="utf-8").splitlines(): if ":" in line: key, value = line.split(":", 1) elif "=" in line: key, value = line.split("=", 1) else: continue values[key.strip().lower()] = value.strip() return values _db = _db_values() DB_HOST = os.getenv("DB_HOST", _db.get("host", "127.0.0.1")) DB_PORT = int(os.getenv("DB_PORT", _db.get("port", "3306"))) DB_USER = os.getenv("DB_USER", _db.get("user", "root")) DB_PASSWORD = os.getenv("DB_PASSWORD", _db.get("password", "")) DB_NAME = os.getenv("DB_NAME", _db.get("db_name", "compressorsensor")) DB_CONNECT_TIMEOUT = int(os.getenv("DB_CONNECT_TIMEOUT", "5"))