52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
# app/config.py
|
|
import configparser
|
|
import os
|
|
|
|
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__),'..'))
|
|
|
|
GLOBAL_CONFIG = configparser.ConfigParser()
|
|
GLOBAL_CONFIG.read(os.getenv("APP_CONFIG_FILE", "config.ini"))
|
|
|
|
class Config:
|
|
SECRET_KEY = os.getenv("SECRET_KEY", "dev-secret")
|
|
SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL", "sqlite:///dev.db")
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
SECRET_KEY = os.getenv("SECRET_KEY", "cakebaker") # 覆盖优先
|
|
VSCODE_WEB_URL = GLOBAL_CONFIG['VSCODE_WEB']['url']
|
|
CODE_LIKE_URL = GLOBAL_CONFIG['CODE_LIKE']['url']
|
|
USER_DATA_DIR = GLOBAL_CONFIG['USER_DATA']['dir']
|
|
COURSE_DATA_DIR = GLOBAL_CONFIG['COURSE_DATA']['dir']
|
|
|
|
# socketio / cors 配置也可以放这里
|
|
SOCKETIO_PING_TIMEOUT = 60
|
|
SOCKETIO_PING_INTERVAL = 5
|
|
MARKDOWN_DIR = os.path.join(BASE_DIR, "books", "markdown")
|
|
STATIC_DIR = os.path.join(BASE_DIR, "apps", "static")
|
|
IMAGE_DIR = "image"
|
|
|
|
# 你的学生工作区根目录(如无就放到项目 data 目录)
|
|
STUDENT_WORKSPACE_ROOT = os.getenv(
|
|
"STUDENT_WORKSPACE_ROOT",
|
|
os.path.join(BASE_DIR, "data", "workspaces")
|
|
)
|
|
|
|
# WSL 相关
|
|
VSCODE_WEB_PATH = {
|
|
"is_wsl": GLOBAL_CONFIG.getboolean("VSCODE_WEB_PATH", "is_wsl", fallback=False),
|
|
"windows_path": GLOBAL_CONFIG.get("VSCODE_WEB_PATH", "windows_path", fallback=""),
|
|
"wsl_path": GLOBAL_CONFIG.get("VSCODE_WEB_PATH", "wsl_path", fallback=""),
|
|
}
|
|
|
|
|
|
MONGO_URI = GLOBAL_CONFIG['MONGO']['uri']
|
|
|
|
TENCENT_COS = {
|
|
"secret_id": GLOBAL_CONFIG['TENCENT_COS']['secret_id'],
|
|
"secret_key": GLOBAL_CONFIG['TENCENT_COS']['secret_key'],
|
|
"bucket": GLOBAL_CONFIG['TENCENT_COS']['bucket'],
|
|
"region": GLOBAL_CONFIG['TENCENT_COS']['region'],
|
|
}
|
|
|
|
ASE_ENGINE_URL = GLOBAL_CONFIG['ASE_ENGINE']['url']
|
|
ASE_ENGINE_URL_TOKEN = GLOBAL_CONFIG['ASE_ENGINE']['url_token']
|
|
ASE_ENGINE_NAMESPACE = GLOBAL_CONFIG['ASE_ENGINE']['namespace'] |