import os from datetime import timedelta class Config: """应用配置类""" # 基础配置 SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-secret-key-change-in-production' # 数据库配置 BASE_DIR = os.path.abspath(os.path.dirname(__file__)) SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ 'sqlite:///' + os.path.join(BASE_DIR, 'forum.db') SQLALCHEMY_TRACK_MODIFICATIONS = False # 文件上传配置 UPLOAD_FOLDER = os.path.join(BASE_DIR, 'uploads') MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16MB 最大文件大小 ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp'} # 会话配置 PERMANENT_SESSION_LIFETIME = timedelta(days=7) # 分页配置 POSTS_PER_PAGE = 20 @staticmethod def init_app(app): """初始化应用配置""" # 确保上传目录存在 os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], 'student_ids'), exist_ok=True) os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], 'posts'), exist_ok=True)