| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- """3D 模块服务端配置:路径、端口与数据库。"""
- import os
- from pathlib import Path
- BASE_DIR = Path(__file__).resolve().parent # viewer/backend
- MODULE_DIR = BASE_DIR.parent # viewer
- MODELS_DIR = MODULE_DIR / "models"
- DATA_DIR = MODULE_DIR / "data"
- SCENE_CSV = DATA_DIR / "scene_positions.csv"
- FAULT_MAP_CSV = DATA_DIR / "fault_part_map.csv"
- FRONTEND_DIST = MODULE_DIR / "frontend" / "dist"
- # 运行模式与登录鉴权。默认 test(测试模式,登录页自动填入账号密码);
- # 生产用 APP_MODE=prod 启动(见 run_prod.sh / README)。
- APP_MODE = os.getenv("APP_MODE", "test").strip().lower()
- IS_TEST = APP_MODE != "prod"
- AUTH_USER = os.getenv("AUTH_USER", "aaabbb")
- AUTH_PASSWORD = os.getenv("AUTH_PASSWORD", "Aa*147258&cd")
- AUTH_TOKEN_TTL_SECONDS = int(os.getenv("AUTH_TOKEN_TTL_SECONDS", "43200"))
- # 数据库凭据沿用项目根目录的 数据库.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"))
|