chore: 基线提交(重构前快照)
重构前保存现有 apps/ 结构基线,供后续各阶段回滚。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
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',
|
||||
]
|
||||
Reference in New Issue
Block a user