Files
c/backend/app/config.py
刘正航 b5237f9038 1
2026-04-21 22:45:19 +08:00

38 lines
1.3 KiB
Python

import json
import os
from pathlib import Path
from urllib.parse import quote_plus
BASE_DIR = Path(__file__).resolve().parents[1]
MYSQL_CONFIG_PATH = BASE_DIR / "mysqlconfig.json"
def load_mysql_config() -> dict:
if not MYSQL_CONFIG_PATH.exists():
raise FileNotFoundError(f"未找到 MySQL 配置文件: {MYSQL_CONFIG_PATH}")
with MYSQL_CONFIG_PATH.open("r", encoding="utf-8-sig") as file:
return json.load(file)
def build_mysql_uri(mysql_cfg: dict) -> str:
user = mysql_cfg["user"]
password = quote_plus(mysql_cfg["password"])
host = mysql_cfg.get("host", "127.0.0.1")
port = mysql_cfg.get("port", 3306)
database = mysql_cfg["database"]
charset = mysql_cfg.get("charset", "utf8mb4")
return f"mysql+pymysql://{user}:{password}@{host}:{port}/{database}?charset={charset}"
class Config:
MYSQL_CONFIG = load_mysql_config()
SQLALCHEMY_DATABASE_URI = build_mysql_uri(MYSQL_CONFIG)
SQLALCHEMY_TRACK_MODIFICATIONS = False
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "replace-this-jwt-secret-key-in-production")
SECRET_KEY = os.getenv("FLASK_SECRET_KEY", "replace-this-flask-secret-key-in-production")
SPAM_DATASET_PATH = str(BASE_DIR / "seed" / "spam_samples_seed.json")
NB_MODEL_PATH = str(BASE_DIR / "models" / "spam_nb_model.joblib")