You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
867 B

"""
数据库配置文件
"""
import os
from typing import Optional
# MySQL数据库配置
DATABASE_CONFIG = {
"host": os.getenv("DB_HOST", "localhost"),
"port": int(os.getenv("DB_PORT", 3306)),
"user": os.getenv("DB_USER", "root"),
"password": os.getenv("DB_PASSWORD", ""),
"database": os.getenv("DB_NAME", "rollcall_system"),
"charset": "utf8mb4"
}
if(mod:=os.getenv("DEV_MOD","DEV")):
if(mod=="TEST"):
DATABASE_CONFIG["database"] = "test_"+DATABASE_CONFIG["database"]
# FastAPI配置
API_HOST = "127.0.0.1"
API_PORT = 8000
# 数据库连接URL
def get_database_url() -> str:
"""生成数据库连接URL"""
config = DATABASE_CONFIG
return (f"mysql+pymysql://{config['user']}:{config['password']}"
f"@{config['host']}:{config['port']}/{config['database']}"
f"?charset={config['charset']}")