refactor: P7 切尾——删除 application/extensions/utils,WSGI 切 src

【切尾】
- src/app.py:应用工厂(原 application/factory.py)
- src/extensions.py:扩展注册编排(原 extensions/)
- src/wsgi.py:生产 WSGI 入口
- 根 app.py 改为 from src.app import create_app(开发入口保留)
- gunicorn/Docker/compose 指向 src.wsgi:app
- 删除 application/、extensions/、utils/(全部代码已迁入 src/)

【清理】21 个 router 中间件导入改 src.core;修复 level 服务潜在 bug
(utils.load2dict 不存在 → model_to_dict);测试文件 R 导入改 src.core

【里程碑】全项目 flake8 从 P1 基线 154 条 → **0 条**;
12 passed;app.py 与 src.wsgi 双入口均启动

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
DjangoAdmin Dev
2026-08-07 19:45:28 +08:00
co-authored by Claude
parent 4d74b31431
commit 5504f3f2c6
176 changed files with 272 additions and 1674 deletions
+14 -7
View File
@@ -33,7 +33,8 @@ _load_env_file()
# ============================================================
# 应用基础配置
from config.app import (
from config.app import ( # noqa: E402
FLASK_NAME, FLASK_VERSION, FLASK_SECRET_KEY, FLASK_HOST, FLASK_PORT,
FLASK_SITE_DOMAIN, FLASK_APP, FLASK_ENV, FLASK_DEBUG, FLASK_USE_RELOADER,
FLASK_DEMO, FLASK_SYSTEM, FLASK_ROOT_PATH, FLASK_TEMPLATE_FOLDER,
@@ -42,19 +43,22 @@ from config.app import (
)
# 数据库配置
from config.database import (
from config.database import ( # noqa: E402
DatabaseConfig, DB_PREFIX, DB_DRIVER, DB_HOST, DB_PORT, DB_DATABASE,
DB_USERNAME, DB_PASSWORD, DB_DEBUG, DB_SSL, DATABASE_URL,
)
# Redis 缓存配置
from config.redis import (
from config.redis import ( # noqa: E402
REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_INDEX,
REDIS_AUTH, REDIS_DECODE_RESPONSES, REDIS_URL,
)
# JWT + 权限 + 白名单配置
from config.auth import (
from config.auth import ( # noqa: E402
JWT_SALT, JWT_EXPIRE_MINUTES, LOGIN_FAIL_MAX, LOGIN_LOCK_SECONDS,
PERMISSION_ENABLED, INTERNAL_API_KEY,
INTERNAL_ALLOWED_IPS, LOGIN_WHITELIST_EXACT, LOGIN_WHITELIST_PREFIX,
@@ -63,21 +67,24 @@ from config.auth import (
)
# 邮件配置
from config.mail import (
from config.mail import ( # noqa: E402
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 (
from config.sms import ( # noqa: E402
SMS_PROVIDER, SMS_ALIYUN_ACCESS_KEY_ID, SMS_ALIYUN_ACCESS_KEY_SECRET,
SMS_ALIYUN_SIGN_NAME, SMS_ALIYUN_ENDPOINT,
SMS_ALIYUN_CONNECT_TIMEOUT, SMS_ALIYUN_READ_TIMEOUT,
)
# 验证码配置
from config.captcha import (
from config.captcha import ( # noqa: E402
CAPTCHA_LENGTH,
CAPTCHA_EXPIRE,
CAPTCHA_RATE_LIMIT,
-1
View File
@@ -22,7 +22,6 @@
import os
from urllib.parse import quote_plus
from config.app import FLASK_SECRET_KEY, FLASK_UPLOAD_DIR
from config.redis import REDIS_URL
# ============================================================
# 数据库环境变量