import os from dotenv import load_dotenv import redis # 加载 .env 文件中的环境变量 basedir = os.path.abspath(os.path.dirname(__file__)) load_dotenv(os.path.join(basedir, '.env')) class Config: """基础配置类""" SECRET_KEY = os.environ.get('SECRET_KEY') or 'a-hard-to-guess-string' SQLALCHEMY_TRACK_MODIFICATIONS = False # Session 配置 SESSION_TYPE = 'redis' SESSION_PERMANENT = False SESSION_USE_SIGNER = True SESSION_REDIS = redis.from_url(os.environ.get('REDIS_URL')) @staticmethod def init_app(app): pass class DevelopmentConfig(Config): """开发环境配置""" DEBUG = True # 数据库 URI DB_USER = os.environ.get('DB_USER') DB_PASSWORD = os.environ.get('DB_PASSWORD') DB_HOST = os.environ.get('DB_HOST') DB_NAME = os.environ.get('DB_NAME') SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}' class ProductionConfig(Config): """生产环境配置""" DEBUG = False # 数据库 URI DB_USER = os.environ.get('DB_USER') DB_PASSWORD = os.environ.get('DB_PASSWORD') DB_HOST = os.environ.get('DB_HOST') DB_NAME = os.environ.get('DB_NAME') SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}' # 方便地通过字典来选择配置 config = { 'development': DevelopmentConfig, 'production': ProductionConfig, 'default': DevelopmentConfig }