CaiYouHui后端fastapi实现

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # app/config.py
  2. import os
  3. from typing import List
  4. import secrets
  5. from dotenv import load_dotenv
  6. # 加载环境变量
  7. load_dotenv()
  8. class Settings:
  9. # 项目配置
  10. PROJECT_NAME: str = os.getenv("PROJECT_NAME", "CaiYouHui 采油会")
  11. VERSION: str = os.getenv("VERSION", "1.0.0")
  12. API_V1_PREFIX: str = os.getenv("API_V1_PREFIX", "/api/v1")
  13. # 安全配置
  14. SECRET_KEY: str = os.getenv("SECRET_KEY", secrets.token_urlsafe(32))
  15. ALGORITHM: str = os.getenv("ALGORITHM", "HS256")
  16. ACCESS_TOKEN_EXPIRE_MINUTES: int = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "1440")) # 24小时
  17. # 数据库配置 - SQLite
  18. DATABASE_URL: str = os.getenv("DATABASE_URL", "sqlite:///./caiyouhui.db")
  19. # CORS 配置
  20. BACKEND_CORS_ORIGINS: List[str] = os.getenv(
  21. "BACKEND_CORS_ORIGINS",
  22. "http://localhost:3000,http://localhost:5173"
  23. ).split(",")
  24. # 调试模式
  25. DEBUG: bool = os.getenv("DEBUG", "True").lower() == "true"
  26. # 文件上传
  27. UPLOAD_DIR: str = os.getenv("UPLOAD_DIR", "./uploads")
  28. MAX_UPLOAD_SIZE: int = int(os.getenv("MAX_UPLOAD_SIZE", "10485760")) # 10MB
  29. # 邮箱验证(可选,后续添加)
  30. SMTP_ENABLED: bool = os.getenv("SMTP_ENABLED", "False").lower() == "true"
  31. SMTP_HOST: str = os.getenv("SMTP_HOST", "")
  32. SMTP_PORT: int = int(os.getenv("SMTP_PORT", "587"))
  33. SMTP_USER: str = os.getenv("SMTP_USER", "")
  34. SMTP_PASSWORD: str = os.getenv("SMTP_PASSWORD", "")
  35. settings = Settings()