from pydantic_settings import BaseSettings from typing import List import os class Settings(BaseSettings): # 基础配置 ENVIRONMENT: str = "development" DEBUG: bool = True # 数据库配置 DATABASE_URL: str = "mysql+pymysql://mytest_db:mytest_db@101.126.85.76:3306/mytest_db" # Redis配置 REDIS_URL: str = "redis://localhost:6379" # JWT配置 JWT_SECRET_KEY: str = "your-super-secret-jwt-key-change-in-production" JWT_ALGORITHM: str = "HS256" JWT_EXPIRE_MINUTES: int = 30 JWT_REFRESH_EXPIRE_DAYS: int = 7 # CORS配置 ALLOWED_HOSTS: List[str] = ["*"] # 允许所有域名访问 # 文件上传配置 MAX_FILE_SIZE: int = 10 * 1024 * 1024 # 10MB UPLOAD_DIR: str = "uploads" ALLOWED_EXTENSIONS: List[str] = [ # 图片 ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp", ".svg", # 文档 ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".txt", ".rtf", ".csv", # 压缩文件 ".zip", ".rar", ".7z", ".tar", ".gz", # 音频 ".mp3", ".wav", ".flac", ".aac", ".ogg", # 视频 ".mp4", ".avi", ".mkv", ".mov", ".wmv", ".flv", # 代码文件 ".py", ".js", ".html", ".css", ".json", ".xml", ".yaml", ".yml", ".java", ".cpp", ".c", ".h", ".cs", ".php", ".rb", ".go", ".sql", ".sh", ".bat", ".ps1", ".md", ".log" ] # 安全配置 BCRYPT_ROUNDS: int = 12 class Config: env_file = ".env" case_sensitive = True extra = "allow" # 允许额外的环境变量 settings = Settings()