1
This commit is contained in:
37
backend/app/config.py
Normal file
37
backend/app/config.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user