| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- """
- 配置管理
- """
- import os
- from pathlib import Path
- from dotenv import load_dotenv
- # 加载环境变量
- env_path = Path(__file__).parent.parent / '.env'
- load_dotenv(dotenv_path=env_path)
- class Settings:
- """应用配置"""
-
- # 数据库配置
- DB_HOST: str = os.getenv("DB_HOST", "localhost")
- DB_PORT: int = int(os.getenv("DB_PORT", "3306"))
- DB_USER: str = os.getenv("DB_USER", "root")
- DB_PASSWORD: str = os.getenv("DB_PASSWORD", "")
- DB_NAME: str = os.getenv("DB_NAME", "buff")
-
- # 数据库URL
- @property
- def DATABASE_URL(self) -> str:
- return f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
-
- # 应用配置
- APP_ENV: str = os.getenv("APP_ENV", "development")
- DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true"
- SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key-change-in-production")
-
- # 加密配置
- ENCRYPT_ENABLED: bool = os.getenv("ENCRYPT_ENABLED", "true").lower() == "true"
- KEY_ROTATION_DAYS: int = int(os.getenv("KEY_ROTATION_DAYS", "10"))
-
- # 日志配置
- LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
-
- # API配置
- API_V1_PREFIX: str = "/api"
- ADMIN_PREFIX: str = "/admin"
- settings = Settings()
|