import os from dotenv import load_dotenv def _load_env_file(): """加载 .env 配置文件""" root_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) env_path = os.path.join(root_path, '.env') if os.path.exists(env_path): load_dotenv(env_path) return True return False # 在任何 config 子模块被 import 之前加载 .env _load_env_file() # ============================================================ # 重新导出所有子模块配置(统一入口) # ============================================================ # 应用基础配置 from config.app import ( FASTAPI_NAME, FASTAPI_VERSION, FASTAPI_HOST, FASTAPI_PORT, FASTAPI_APP, FASTAPI_ENV, FASTAPI_DEBUG, FASTAPI_DEMO, FASTAPI_ROOT_PATH, FASTAPI_TEMPLATE_FOLDER, FASTAPI_STATIC_FOLDER, FASTAPI_UPLOAD_DIR, FASTAPI_IMAGE_PATH, FASTAPI_TEMP_PATH, FASTAPI_IMAGE_URL, TRUSTED_PROXY_COUNT, ) # 数据库配置 from config.database import ( DB_DRIVER, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, DB_PREFIX, DB_DEBUG, DB_POOL_SIZE, DB_MAX_OVERFLOW, DB_POOL_RECYCLE, DB_POOL_TIMEOUT, DB_CONNECT_TIMEOUT, SQLALCHEMY_MYSQL_URL, SQLALCHEMY_POSTGRESQL_URL, SQLALCHEMY_SQLITE_URL, ) # Redis 缓存配置 from config.redis import ( REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_INDEX, REDIS_AUTH, REDIS_DECODE_RESPONSES, ) # JWT 认证配置 from config.auth import ( JWT_SALT, JWT_EXPIRE_MINUTES, LOGIN_FAIL_MAX, LOGIN_LOCK_SECONDS, ) # 验证码配置 from config.captcha import ( CAPTCHA_LENGTH, CAPTCHA_EXPIRE, CAPTCHA_RATE_LIMIT, CAPTCHA_RATE_WINDOW, CAPTCHA_CHARS, CAPTCHA_FONT_PATH, CAPTCHA_IMAGE_WIDTH, CAPTCHA_IMAGE_HEIGHT, CAPTCHA_FONT_SIZE, CAPTCHA_NOISE_LINES, CAPTCHA_NOISE_DOTS, CAPTCHA_BYPASS_CODE, ) # 邮件配置 from config.email import ( MAIL_MAILER, MAIL_SERVER, MAIL_PORT, MAIL_USE_SSL, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_NAME, MAIL_FROM_ADDRESS, ) # 短信配置 from config.sms import ( SMS_URL, SMS_API_KEY, SMS_SIGN, SMS_TEMPLATE_ID, ) __all__ = [ # 应用基础配置 'FASTAPI_NAME', 'FASTAPI_VERSION', 'FASTAPI_HOST', 'FASTAPI_PORT', 'FASTAPI_APP', 'FASTAPI_ENV', 'FASTAPI_DEBUG', 'FASTAPI_DEMO', 'FASTAPI_ROOT_PATH', 'FASTAPI_TEMPLATE_FOLDER', 'FASTAPI_STATIC_FOLDER', 'FASTAPI_UPLOAD_DIR', 'FASTAPI_IMAGE_PATH', 'FASTAPI_TEMP_PATH', 'FASTAPI_IMAGE_URL', 'TRUSTED_PROXY_COUNT', # 数据库配置 'DB_DRIVER', 'DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USERNAME', 'DB_PASSWORD', 'DB_PREFIX', 'DB_DEBUG', 'DB_POOL_SIZE', 'DB_MAX_OVERFLOW', 'DB_POOL_RECYCLE', 'DB_POOL_TIMEOUT', 'DB_CONNECT_TIMEOUT', 'SQLALCHEMY_MYSQL_URL', 'SQLALCHEMY_POSTGRESQL_URL', 'SQLALCHEMY_SQLITE_URL', # Redis 配置 'REDIS_HOST', 'REDIS_PORT', 'REDIS_PASSWORD', 'REDIS_INDEX', 'REDIS_AUTH', 'REDIS_DECODE_RESPONSES', # JWT 认证配置 'JWT_SALT', 'JWT_EXPIRE_MINUTES', 'LOGIN_FAIL_MAX', 'LOGIN_LOCK_SECONDS', # 验证码配置 'CAPTCHA_LENGTH', 'CAPTCHA_EXPIRE', 'CAPTCHA_RATE_LIMIT', 'CAPTCHA_RATE_WINDOW', 'CAPTCHA_CHARS', 'CAPTCHA_FONT_PATH', 'CAPTCHA_IMAGE_WIDTH', 'CAPTCHA_IMAGE_HEIGHT', 'CAPTCHA_FONT_SIZE', 'CAPTCHA_NOISE_LINES', 'CAPTCHA_NOISE_DOTS', 'CAPTCHA_BYPASS_CODE', # 邮件配置 'MAIL_MAILER', 'MAIL_SERVER', 'MAIL_PORT', 'MAIL_USE_SSL', 'MAIL_USERNAME', 'MAIL_PASSWORD', 'MAIL_ENCRYPTION', 'MAIL_FROM_NAME', 'MAIL_FROM_ADDRESS', # 短信配置 'SMS_URL', 'SMS_API_KEY', 'SMS_SIGN', 'SMS_TEMPLATE_ID', ]