54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
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() |