diff --git a/app.py b/app.py index 50ffbc5..7eedbee 100644 --- a/app.py +++ b/app.py @@ -11,7 +11,7 @@ → Gunicorn 通过 `app:app` 导入 app 对象,不执行 __main__ 块 """ -from application.factory import create_app +from src.app import create_app from config import FLASK_HOST, FLASK_PORT, FLASK_DEBUG, FLASK_USE_RELOADER # 创建应用实例 diff --git a/application/__init__.py b/application/__init__.py deleted file mode 100644 index e1ea106..0000000 --- a/application/__init__.py +++ /dev/null @@ -1,61 +0,0 @@ -# +====================================================================== -# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ] -# +---------------------------------------------------------------------- -# | Copyright (c) 2021-2026 一米阳光团队 版权所有 -# +---------------------------------------------------------------------- -# | 开源协议: Apache-2.0 -# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。 -# +---------------------------------------------------------------------- -# | 官方网站: https://www.djangoadmin.cn -# +---------------------------------------------------------------------- -# | 研发团队: 一米阳光团队 荣誉出品 -# +====================================================================== -# | 版权和免责声明: -# | 一、知识产权声明 -# | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、 -# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权, -# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。 -# | 二、使用限制与禁止条款 -# | 您理解并同意,禁止将本产品用于以下任何行为: -# | 1. 任何违反中华人民共和国法律法规的用途; -# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为; -# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。 -# | 三、责任豁免 -# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失 -# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三 -# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。 -# | 四、违约与法律责任 -# | 如发现任何违反本声明的行为,本团队有权: -# | 1. 无条件配合公安机关及其他有权机关的调查取证工作; -# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失; -# | 3. 保留进一步采取刑事控告等法律措施的权利。 -# | 五、许可范围说明 -# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包 -# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通 -# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、 -# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造 -# | 成的一切经济损失及商誉损害。 -# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件 -# | 许可协议》附件为准。 -# +====================================================================== - -""" -application 包 -============================================================= - -Flask 应用核心包。 - -包结构: - - factory.py 应用工厂(create_app) - - constants/ 常量定义 - - forms/ 表单验证 - - middleware/ 请求/响应中间件 - - models/ 数据模型 - - services/ 业务逻辑 - - views/ 路由控制器 - -说明: - 应用工厂独立于 factory.py,保持本包导入轻量,避免包初始化时 - 触发全量导入(修复循环导入,支持单元测试与模块级导入)。 - 重构方向:本包后续整体迁移至 src/(见重构方案-v2.md)。 -""" diff --git a/application/constants/__init__.py b/application/constants/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/application/constants/common.py b/application/constants/common.py deleted file mode 100644 index 63f55a7..0000000 --- a/application/constants/common.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -已迁移至 src/common/constants/common.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.constants.common import * # noqa: F401,F403 diff --git a/application/constants/dict.py b/application/constants/dict.py deleted file mode 100644 index 9416745..0000000 --- a/application/constants/dict.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -已迁移至 src/common/constants/dictionary_constants.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.constants.dictionary_constants import * # noqa: F401,F403 diff --git a/application/factory.py b/application/factory.py deleted file mode 100644 index 4852bcf..0000000 --- a/application/factory.py +++ /dev/null @@ -1,207 +0,0 @@ -# +====================================================================== -# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ] -# +---------------------------------------------------------------------- -# | Copyright (c) 2021-2026 一米阳光团队 版权所有 -# +---------------------------------------------------------------------- -# | 开源协议: Apache-2.0 -# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。 -# +---------------------------------------------------------------------- -# | 官方网站: https://www.djangoadmin.cn -# +---------------------------------------------------------------------- -# | 研发团队: 一米阳光团队 荣誉出品 -# +====================================================================== -# | 版权和免责声明: -# | 一、知识产权声明 -# | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、 -# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权, -# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。 -# | 二、使用限制与禁止条款 -# | 您理解并同意,禁止将本产品用于以下任何行为: -# | 1. 任何违反中华人民共和国法律法规的用途; -# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为; -# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。 -# | 三、责任豁免 -# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失 -# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三 -# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。 -# | 四、违约与法律责任 -# | 如发现任何违反本声明的行为,本团队有权: -# | 1. 无条件配合公安机关及其他有权机关的调查取证工作; -# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失; -# | 3. 保留进一步采取刑事控告等法律措施的权利。 -# | 五、许可范围说明 -# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包 -# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通 -# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、 -# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造 -# | 成的一切经济损失及商誉损害。 -# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件 -# | 许可协议》附件为准。 -# +====================================================================== - -""" -应用工厂模块 -============================================================= - -负责创建和配置 Flask 应用实例。 - -说明: - 应用工厂从 application/__init__.py 独立至此模块,使 application - 包保持轻量,避免包初始化时触发全量导入(修复循环导入,支持单元测试)。 - 重构方向:本模块后续迁移至 src/app.py(见重构方案-v2.md P2)。 -""" - -import os - -from flask import Flask -from flask_cors import CORS -from werkzeug.middleware.proxy_fix import ProxyFix - -from src.core.middleware import register_middleware, register_transaction, register_error_handlers, register_operation_log -from application.views import register_blueprint -from config import DatabaseConfig, REDIS_URL -from extensions import register_extends -from utils.json import JSONEncoder - -# 模型注册中心:确保 Flask-Migrate 全量识别表结构(见 src/models_registry.py) -import src.models_registry # noqa: F401 - - -def create_app(): - """ - 创建并配置 Flask 应用实例 - - 配置流程: - 1. 创建 Flask 核心对象 - 2. 配置 Redis 连接 - 3. 加载数据库配置 - 4. 设置 JSON 序列化器 - 5. 配置跨域资源共享 - 6. 初始化数据库 - 7. 初始化 Redis 缓存 - 8. 注册路由蓝图 - 9. 初始化第三方扩展 - 10. 注册中间件 - - Returns: - Flask: 配置完成的应用实例 - """ - # ============================================================ - # 创建 Flask 核心对象 - # ============================================================ - app = Flask( - __name__, - template_folder='../templates', - static_folder='../static' - ) - - # ============================================================ - # Redis 配置(用于缓存和会话存储) - # ============================================================ - app.config['REDIS_URL'] = REDIS_URL - - # ============================================================ - # 加载数据库配置 - # ============================================================ - app.config.from_object(DatabaseConfig) - - # ============================================================ - # 自定义 JSON 序列化器(支持 datetime 等特殊类型) - # ============================================================ - app.json = JSONEncoder(app) - - # ============================================================ - # 跨域资源共享配置 - # ============================================================ - # 注意:origins="*" 与 supports_credentials=True 不兼容, - # 浏览器会拒绝携带凭证的通配符CORS响应。 - # 配置了 CORS_ALLOWED_ORIGINS 时使用指定源(支持凭证), - # 未配置时使用通配符(不支持凭证)。 - from config import CORS_ALLOWED_ORIGINS - if CORS_ALLOWED_ORIGINS: - allowed_origins = [origin.strip() for origin in CORS_ALLOWED_ORIGINS.split(',') if origin.strip()] - CORS( - app, - resources={r"/*": {"origins": allowed_origins}}, - supports_credentials=True - ) - else: - CORS( - app, - resources={r"/*": {"origins": "*"}}, - supports_credentials=False - ) - - # ============================================================ - # 可信代理配置(反向代理环境下获取真实客户端IP) - # ============================================================ - # PROXY_NUM: 可信代理层数,默认0(无代理,不信任任何转发头) - # 设为1表示前面有1层可信代理(如Nginx),ProxyFix会从 - # X-Forwarded-For 最右侧取1个IP作为真实客户端IP - proxy_num = int(os.getenv('PROXY_NUM', 0)) - if proxy_num > 0: - app.wsgi_app = ProxyFix(app.wsgi_app, x_for=proxy_num, x_proto=proxy_num) - - # ============================================================ - # 注册操作日志自动记录中间件(必须在事务拦截器之前注册, - # 确保 after_request 中日志写入先于事务提交,日志随事务一起持久化) - # ============================================================ - register_operation_log(app) - - # ============================================================ - # 注册 AOP 事务拦截器(核心:一行代码搞定所有事务) - # ============================================================ - register_transaction(app) - - # ============================================================ - # 注册蓝图(路由分组管理) - # ============================================================ - register_blueprint(app) - - # ============================================================ - # 初始化第三方扩展 - # ============================================================ - register_extends(app) - - # ============================================================ - # 注册中间件(请求/响应拦截处理) - # ============================================================ - register_middleware(app) - - # ============================================================ - # 注册全局异常处理器(确保最后注册,能捕获所有环节异常) - # ============================================================ - register_error_handlers(app) - - # ============================================================ - # 依赖注入(DI):core 层不 import modules 层,由组合根注入 - # ============================================================ - _inject_dependencies(app) - - return app - - -def _inject_dependencies(app): - """ - 依赖注入:向 core 中间件注入业务实现 - - 1. permission_provider:权限校验数据提供方(menu 服务) - 2. operation_log_writer:操作日志写入器(log 服务) - - 设计依据:src/core/permission.py 定义 PermissionProvider 协议, - core 中间件通过 current_app.extensions 获取注入的实现。 - """ - from src.modules.system.menu.service import get_user_permissions - from src.modules.log.service import record_operation_log - - # ---- 权限提供方 ---- - class MenuPermissionProvider: - """权限数据提供方(适配 menu 服务)。""" - - def get_user_permissions(self, user_id): - return get_user_permissions(user_id) - - app.extensions['permission_provider'] = MenuPermissionProvider() - - # ---- 操作日志写入器 ---- - app.extensions['operation_log_writer'] = record_operation_log diff --git a/application/forms/__init__.py b/application/forms/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/application/forms/article.py b/application/forms/article.py deleted file mode 100644 index 20833c3..0000000 --- a/application/forms/article.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.cms.article.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.article.schema import * # noqa: F401,F403 diff --git a/application/forms/base_form.py b/application/forms/base_form.py deleted file mode 100644 index c36d992..0000000 --- a/application/forms/base_form.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单基类已迁移至 src/common/forms/base_form.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.forms.base_form import * # noqa: F401,F403 diff --git a/application/forms/category.py b/application/forms/category.py deleted file mode 100644 index 735f215..0000000 --- a/application/forms/category.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.cms.category.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.category.schema import * # noqa: F401,F403 diff --git a/application/forms/city.py b/application/forms/city.py deleted file mode 100644 index 5552858..0000000 --- a/application/forms/city.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.city.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.city.schema import * # noqa: F401,F403 diff --git a/application/forms/config.py b/application/forms/config.py deleted file mode 100644 index 351a298..0000000 --- a/application/forms/config.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.configuration.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.schema import * # noqa: F401,F403 diff --git a/application/forms/config_item.py b/application/forms/config_item.py deleted file mode 100644 index 351a298..0000000 --- a/application/forms/config_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.configuration.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.schema import * # noqa: F401,F403 diff --git a/application/forms/dept.py b/application/forms/dept.py deleted file mode 100644 index 4f58cab..0000000 --- a/application/forms/dept.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.dept.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.dept.schema import * # noqa: F401,F403 diff --git a/application/forms/dict.py b/application/forms/dict.py deleted file mode 100644 index 14838e4..0000000 --- a/application/forms/dict.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.dictionary.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.schema import * # noqa: F401,F403 diff --git a/application/forms/dict_item.py b/application/forms/dict_item.py deleted file mode 100644 index 14838e4..0000000 --- a/application/forms/dict_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.dictionary.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.schema import * # noqa: F401,F403 diff --git a/application/forms/fields.py b/application/forms/fields.py deleted file mode 100644 index 9e5faea..0000000 --- a/application/forms/fields.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -自定义表单字段已迁移至 src/common/forms/fields.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.forms.fields import * # noqa: F401,F403 diff --git a/application/forms/file_template.py b/application/forms/file_template.py deleted file mode 100644 index 3f1f625..0000000 --- a/application/forms/file_template.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.file_template.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.file_template.schema import * # noqa: F401,F403 diff --git a/application/forms/job.py b/application/forms/job.py deleted file mode 100644 index 8e464bd..0000000 --- a/application/forms/job.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.job.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.schema import * # noqa: F401,F403 diff --git a/application/forms/level.py b/application/forms/level.py deleted file mode 100644 index 978f47e..0000000 --- a/application/forms/level.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.level.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.level.schema import * # noqa: F401,F403 diff --git a/application/forms/link.py b/application/forms/link.py deleted file mode 100644 index 32abba5..0000000 --- a/application/forms/link.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.cms.link.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.link.schema import * # noqa: F401,F403 diff --git a/application/forms/login.py b/application/forms/login.py deleted file mode 100644 index f823523..0000000 --- a/application/forms/login.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.auth.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.auth.schema import * # noqa: F401,F403 diff --git a/application/forms/menu.py b/application/forms/menu.py deleted file mode 100644 index 2d59457..0000000 --- a/application/forms/menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.menu.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.menu.schema import * # noqa: F401,F403 diff --git a/application/forms/notice.py b/application/forms/notice.py deleted file mode 100644 index 528ca9b..0000000 --- a/application/forms/notice.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.notice.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.notice.schema import * # noqa: F401,F403 diff --git a/application/forms/param.py b/application/forms/param.py deleted file mode 100644 index 57591b2..0000000 --- a/application/forms/param.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.param.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.param.schema import * # noqa: F401,F403 diff --git a/application/forms/position.py b/application/forms/position.py deleted file mode 100644 index d23d60d..0000000 --- a/application/forms/position.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.position.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.position.schema import * # noqa: F401,F403 diff --git a/application/forms/role.py b/application/forms/role.py deleted file mode 100644 index cc1c363..0000000 --- a/application/forms/role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.role.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.role.schema import * # noqa: F401,F403 diff --git a/application/forms/role_menu.py b/application/forms/role_menu.py deleted file mode 100644 index 732eaaf..0000000 --- a/application/forms/role_menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.association.role_menu.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.role_menu.schema import * # noqa: F401,F403 diff --git a/application/forms/user.py b/application/forms/user.py deleted file mode 100644 index e3a15b7..0000000 --- a/application/forms/user.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.system.user.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.user.schema import * # noqa: F401,F403 diff --git a/application/forms/user_role.py b/application/forms/user_role.py deleted file mode 100644 index a468ff8..0000000 --- a/application/forms/user_role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单已迁移至 src.modules.association.user_role.schema。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.user_role.schema import * # noqa: F401,F403 diff --git a/application/middleware/.gitignore b/application/middleware/.gitignore deleted file mode 100644 index 7c4c961..0000000 --- a/application/middleware/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# ============================================================ -# application/middleware/ 目录专用忽略 -# ============================================================ -# 说明: -# 1. 原文件内容为 `*`,误将整个中间件源码层排除在版本库外, -# 已修正。中间件源码必须入库。 -# 2. 缓存目录由根目录 .gitignore 统一处理。 -# ============================================================ diff --git a/application/middleware/__init__.py b/application/middleware/__init__.py deleted file mode 100644 index 9296edc..0000000 --- a/application/middleware/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -中间件已迁移至 src/core/middleware.py 与 src/core/permission.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 -from src.core.permission import check_permission, is_internal_call # noqa: F401 diff --git a/application/middleware/check_demo.py b/application/middleware/check_demo.py deleted file mode 100644 index c6ddc2b..0000000 --- a/application/middleware/check_demo.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -演示模式拦截器已迁移至 src/core/middleware.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 diff --git a/application/middleware/check_login.py b/application/middleware/check_login.py deleted file mode 100644 index a90728c..0000000 --- a/application/middleware/check_login.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -登录校验中间件已迁移至 src/core/middleware.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 diff --git a/application/middleware/check_permission.py b/application/middleware/check_permission.py deleted file mode 100644 index 22bdc0e..0000000 --- a/application/middleware/check_permission.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -权限校验已迁移至 src/core/permission.py(依赖注入版)。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.permission import * # noqa: F401,F403 diff --git a/application/middleware/error_handler.py b/application/middleware/error_handler.py deleted file mode 100644 index fe0d745..0000000 --- a/application/middleware/error_handler.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -全局异常处理已迁移至 src/core/middleware.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 diff --git a/application/middleware/op_log.py b/application/middleware/op_log.py deleted file mode 100644 index 357d1e6..0000000 --- a/application/middleware/op_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -操作日志中间件已迁移至 src/core/middleware.py(写入器由应用工厂注入)。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 diff --git a/application/middleware/transaction.py b/application/middleware/transaction.py deleted file mode 100644 index 5dc5669..0000000 --- a/application/middleware/transaction.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -AOP 事务拦截器已迁移至 src/core/middleware.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.middleware import * # noqa: F401,F403 diff --git a/application/models/.gitignore b/application/models/.gitignore deleted file mode 100644 index 307875a..0000000 --- a/application/models/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# ============================================================ -# application/models/ 目录专用忽略 -# ============================================================ -# 说明: -# 1. 原文件内容为 `*`,误将整个模型源码层排除在版本库外, -# 已修正。模型源码必须入库。 -# 2. 缓存目录由根目录 .gitignore 统一处理。 -# ============================================================ diff --git a/application/models/__init__.py b/application/models/__init__.py deleted file mode 100644 index 8c5bca9..0000000 --- a/application/models/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -from . import article -from . import category -from . import city -from . import config -from . import config_item -from . import dept -from . import dict -from . import dict_item -from . import file_template -from . import job -from . import level -from . import link -from . import login_log -from . import menu -from . import notice -from . import operation_log -from . import param -from . import position -from . import role -from . import role_menu -from . import user -from . import user_role diff --git a/application/models/article.py b/application/models/article.py deleted file mode 100644 index 54c4c8a..0000000 --- a/application/models/article.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.cms.article.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.article.models import * # noqa: F401,F403 diff --git a/application/models/base_db.py b/application/models/base_db.py deleted file mode 100644 index 0b3ff47..0000000 --- a/application/models/base_db.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -数据库操作基类已迁移至 src.common.base_db.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.base_db import * # noqa: F401,F403 diff --git a/application/models/base_model.py b/application/models/base_model.py deleted file mode 100644 index c91c08a..0000000 --- a/application/models/base_model.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型基类已迁移至 src.common.base_model.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.base_model import * # noqa: F401,F403 diff --git a/application/models/category.py b/application/models/category.py deleted file mode 100644 index 0f0cd29..0000000 --- a/application/models/category.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.cms.category.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.category.models import * # noqa: F401,F403 diff --git a/application/models/city.py b/application/models/city.py deleted file mode 100644 index 7a884dc..0000000 --- a/application/models/city.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.city.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.city.models import * # noqa: F401,F403 diff --git a/application/models/config.py b/application/models/config.py deleted file mode 100644 index 8cd5dc1..0000000 --- a/application/models/config.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.configuration.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.models import * # noqa: F401,F403 diff --git a/application/models/config_item.py b/application/models/config_item.py deleted file mode 100644 index 8cd5dc1..0000000 --- a/application/models/config_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.configuration.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.models import * # noqa: F401,F403 diff --git a/application/models/dept.py b/application/models/dept.py deleted file mode 100644 index c47f2a8..0000000 --- a/application/models/dept.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.dept.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.dept.models import * # noqa: F401,F403 diff --git a/application/models/dict.py b/application/models/dict.py deleted file mode 100644 index ceacdff..0000000 --- a/application/models/dict.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.dictionary.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.models import * # noqa: F401,F403 diff --git a/application/models/dict_item.py b/application/models/dict_item.py deleted file mode 100644 index ceacdff..0000000 --- a/application/models/dict_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.dictionary.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.models import * # noqa: F401,F403 diff --git a/application/models/file_template.py b/application/models/file_template.py deleted file mode 100644 index 677e8a4..0000000 --- a/application/models/file_template.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.file_template.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.file_template.models import * # noqa: F401,F403 diff --git a/application/models/job.py b/application/models/job.py deleted file mode 100644 index d313c07..0000000 --- a/application/models/job.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.job.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.models import * # noqa: F401,F403 diff --git a/application/models/level.py b/application/models/level.py deleted file mode 100644 index ad1846e..0000000 --- a/application/models/level.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.level.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.level.models import * # noqa: F401,F403 diff --git a/application/models/link.py b/application/models/link.py deleted file mode 100644 index 3075919..0000000 --- a/application/models/link.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.cms.link.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.link.models import * # noqa: F401,F403 diff --git a/application/models/login_log.py b/application/models/login_log.py deleted file mode 100644 index 5a94ef5..0000000 --- a/application/models/login_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.log.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.models import * # noqa: F401,F403 diff --git a/application/models/menu.py b/application/models/menu.py deleted file mode 100644 index 5e39627..0000000 --- a/application/models/menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.menu.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.menu.models import * # noqa: F401,F403 diff --git a/application/models/notice.py b/application/models/notice.py deleted file mode 100644 index 6abc98a..0000000 --- a/application/models/notice.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.notice.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.notice.models import * # noqa: F401,F403 diff --git a/application/models/operation_log.py b/application/models/operation_log.py deleted file mode 100644 index 5a94ef5..0000000 --- a/application/models/operation_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.log.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.models import * # noqa: F401,F403 diff --git a/application/models/param.py b/application/models/param.py deleted file mode 100644 index 1d39360..0000000 --- a/application/models/param.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.param.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.param.models import * # noqa: F401,F403 diff --git a/application/models/position.py b/application/models/position.py deleted file mode 100644 index 52607af..0000000 --- a/application/models/position.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.position.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.position.models import * # noqa: F401,F403 diff --git a/application/models/role.py b/application/models/role.py deleted file mode 100644 index 7fc6a9a..0000000 --- a/application/models/role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.role.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.role.models import * # noqa: F401,F403 diff --git a/application/models/role_menu.py b/application/models/role_menu.py deleted file mode 100644 index deb3efd..0000000 --- a/application/models/role_menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.association.role_menu.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.role_menu.models import * # noqa: F401,F403 diff --git a/application/models/user.py b/application/models/user.py deleted file mode 100644 index e588269..0000000 --- a/application/models/user.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.system.user.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.user.models import * # noqa: F401,F403 diff --git a/application/models/user_role.py b/application/models/user_role.py deleted file mode 100644 index 9b17cb4..0000000 --- a/application/models/user_role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型已迁移至 src.modules.association.user_role.models。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.user_role.models import * # noqa: F401,F403 diff --git a/application/services/__init__.py b/application/services/__init__.py deleted file mode 100644 index 563801f..0000000 --- a/application/services/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -from . import article -from . import category -from . import city -from . import config -from . import config_item -from . import dept -from . import dict -from . import dict_item -from . import job_executor -from . import file_template -from . import job -from . import level -from . import link -from . import login_log -from . import login -from . import menu -from . import notice -from . import operation_log -from . import param -from . import position -from . import role -from . import role_menu -from . import scheduler -from . import upload -from . import user -from . import user_role diff --git a/application/services/article.py b/application/services/article.py deleted file mode 100644 index 826c53f..0000000 --- a/application/services/article.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.cms.article.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.article.service import * # noqa: F401,F403 diff --git a/application/services/category.py b/application/services/category.py deleted file mode 100644 index 27103dd..0000000 --- a/application/services/category.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.cms.category.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.category.service import * # noqa: F401,F403 diff --git a/application/services/city.py b/application/services/city.py deleted file mode 100644 index 77a0e62..0000000 --- a/application/services/city.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.city.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.city.service import * # noqa: F401,F403 diff --git a/application/services/config.py b/application/services/config.py deleted file mode 100644 index 7de9c7d..0000000 --- a/application/services/config.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.configuration.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.service import * # noqa: F401,F403 diff --git a/application/services/config_item.py b/application/services/config_item.py deleted file mode 100644 index 7de9c7d..0000000 --- a/application/services/config_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.configuration.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.service import * # noqa: F401,F403 diff --git a/application/services/dept.py b/application/services/dept.py deleted file mode 100644 index 58728e4..0000000 --- a/application/services/dept.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.dept.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.dept.service import * # noqa: F401,F403 diff --git a/application/services/dict.py b/application/services/dict.py deleted file mode 100644 index 2fafa44..0000000 --- a/application/services/dict.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.dictionary.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.service import * # noqa: F401,F403 diff --git a/application/services/dict_item.py b/application/services/dict_item.py deleted file mode 100644 index 2fafa44..0000000 --- a/application/services/dict_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.dictionary.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.service import * # noqa: F401,F403 diff --git a/application/services/file_template.py b/application/services/file_template.py deleted file mode 100644 index c9f4826..0000000 --- a/application/services/file_template.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.file_template.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.file_template.service import * # noqa: F401,F403 diff --git a/application/services/job.py b/application/services/job.py deleted file mode 100644 index 72a3dad..0000000 --- a/application/services/job.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.job.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.service import * # noqa: F401,F403 diff --git a/application/services/job_executor.py b/application/services/job_executor.py deleted file mode 100644 index 55d45dd..0000000 --- a/application/services/job_executor.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.job.executor。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.executor import * # noqa: F401,F403 diff --git a/application/services/level.py b/application/services/level.py deleted file mode 100644 index bd4eb31..0000000 --- a/application/services/level.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.level.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.level.service import * # noqa: F401,F403 diff --git a/application/services/link.py b/application/services/link.py deleted file mode 100644 index a6e902a..0000000 --- a/application/services/link.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.cms.link.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.link.service import * # noqa: F401,F403 diff --git a/application/services/login.py b/application/services/login.py deleted file mode 100644 index 2eb1322..0000000 --- a/application/services/login.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.auth.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.auth.service import * # noqa: F401,F403 diff --git a/application/services/login_log.py b/application/services/login_log.py deleted file mode 100644 index 1e92fae..0000000 --- a/application/services/login_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.log.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.service import * # noqa: F401,F403 diff --git a/application/services/mail_svc.py b/application/services/mail_svc.py deleted file mode 100644 index 2889cc3..0000000 --- a/application/services/mail_svc.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.job.mail_service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.mail_service import * # noqa: F401,F403 diff --git a/application/services/menu.py b/application/services/menu.py deleted file mode 100644 index 8630ce4..0000000 --- a/application/services/menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.menu.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.menu.service import * # noqa: F401,F403 diff --git a/application/services/notice.py b/application/services/notice.py deleted file mode 100644 index 40c8901..0000000 --- a/application/services/notice.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.notice.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.notice.service import * # noqa: F401,F403 diff --git a/application/services/operation_log.py b/application/services/operation_log.py deleted file mode 100644 index 1e92fae..0000000 --- a/application/services/operation_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.log.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.service import * # noqa: F401,F403 diff --git a/application/services/param.py b/application/services/param.py deleted file mode 100644 index c7286cb..0000000 --- a/application/services/param.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.param.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.param.service import * # noqa: F401,F403 diff --git a/application/services/position.py b/application/services/position.py deleted file mode 100644 index 3ec15bf..0000000 --- a/application/services/position.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.position.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.position.service import * # noqa: F401,F403 diff --git a/application/services/role.py b/application/services/role.py deleted file mode 100644 index f6c7a40..0000000 --- a/application/services/role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.role.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.role.service import * # noqa: F401,F403 diff --git a/application/services/role_menu.py b/application/services/role_menu.py deleted file mode 100644 index 1f500cd..0000000 --- a/application/services/role_menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.association.role_menu.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.role_menu.service import * # noqa: F401,F403 diff --git a/application/services/scheduler.py b/application/services/scheduler.py deleted file mode 100644 index 55eda8f..0000000 --- a/application/services/scheduler.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.job.scheduler_service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.scheduler_service import * # noqa: F401,F403 diff --git a/application/services/sms_svc.py b/application/services/sms_svc.py deleted file mode 100644 index 752b4b6..0000000 --- a/application/services/sms_svc.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.job.sms_service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.sms_service import * # noqa: F401,F403 diff --git a/application/services/upload.py b/application/services/upload.py deleted file mode 100644 index 24d31cc..0000000 --- a/application/services/upload.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.upload.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.upload.service import * # noqa: F401,F403 diff --git a/application/services/user.py b/application/services/user.py deleted file mode 100644 index f5c0e00..0000000 --- a/application/services/user.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.system.user.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.user.service import * # noqa: F401,F403 diff --git a/application/services/user_role.py b/application/services/user_role.py deleted file mode 100644 index 897297b..0000000 --- a/application/services/user_role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -服务已迁移至 src.modules.association.user_role.service。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.user_role.service import * # noqa: F401,F403 diff --git a/application/views/__init__.py b/application/views/__init__.py deleted file mode 100644 index a567ba4..0000000 --- a/application/views/__init__.py +++ /dev/null @@ -1,117 +0,0 @@ -# +====================================================================== -# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ] -# +---------------------------------------------------------------------- -# | Copyright (c) 2021-2026 一米阳光团队 版权所有 -# +---------------------------------------------------------------------- -# | 开源协议: Apache-2.0 -# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。 -# +---------------------------------------------------------------------- -# | 官方网站: https://www.djangoadmin.cn -# +---------------------------------------------------------------------- -# | 研发团队: 一米阳光团队 荣誉出品 -# +====================================================================== -# | 版权和免责声明: -# | 一、知识产权声明 -# | 本团队对该软件框架产品(以下简称"本产品")拥有完整知识产权,包括但不限于商标权、专利权、 -# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权, -# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。 -# | 二、使用限制与禁止条款 -# | 您理解并同意,禁止将本产品用于以下任何行为: -# | 1. 任何违反中华人民共和国法律法规的用途; -# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为; -# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。 -# | 三、责任豁免 -# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失 -# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三 -# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。 -# | 四、违约与法律责任 -# | 如发现任何违反本声明的行为,本团队有权: -# | 1. 无条件配合公安机关及其他有权机关的调查取证工作; -# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失; -# | 3. 保留进一步采取刑事控告等法律措施的权利。 -# | 五、许可范围说明 -# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包 -# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通 -# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、 -# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造 -# | 成的一切经济损失及商誉损害。 -# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件 -# | 许可协议》附件为准。 -# +====================================================================== - -""" -蓝图初始化模块 -============================================================= - -该模块负责自动发现和注册所有Flask蓝图(Blueprint), -是应用路由层的核心配置文件。 - -功能说明: - 1. 通过模块列表自动导入各视图模块 - 2. 自动发现模块中的Blueprint实例并注册到应用 - 3. 新增模块只需在 _blueprint_modules 列表中添加模块名 - -所属包: application.views -依赖模块: 各个业务模块的视图控制器 -""" - -import importlib - -from flask import Blueprint - -# ============================================================ -# 视图模块列表 -# ============================================================ -# 新增模块只需在此列表中添加模块名即可,无需修改其他代码。 -# 模块导入顺序:核心模块 -> 系统管理 -> 系统配置 -> 内容管理 -> 辅助功能 -> 其他业务 - -_blueprint_modules = [ - # 系统核心模块 - 'login', - 'index', - # 系统管理模块 - 'user', - 'role', - 'role_menu', - 'user_role', - 'menu', - 'dept', - 'position', - 'level', - # 系统配置模块 - 'param', - 'dict', - 'dict_item', - 'config', - 'config_item', - # 内容管理模块 - 'category', - 'article', - # 辅助功能模块 - 'upload', - 'file_template', - 'login_log', - 'operation_log', - # 其他业务模块 - 'city', - 'notice', - 'link', - 'job', -] - - -def register_blueprint(app): - """ - 注册 API v1 路由到 Flask 应用实例 - - 所有业务蓝图统一挂载到 /api/v1 前缀(见 src/routes/v1.py)。 - 原自动发现机制已由 routes/v1.py 的显式注册取代。 - - Args: - app: Flask应用实例 - - Returns: - Flask: 注册完成后的Flask应用实例 - """ - from src.routes.v1 import register_v1 - return register_v1(app) diff --git a/application/views/article.py b/application/views/article.py deleted file mode 100644 index 798bb4c..0000000 --- a/application/views/article.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.cms.article.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.article.router import * # noqa: F401,F403 diff --git a/application/views/category.py b/application/views/category.py deleted file mode 100644 index 546c994..0000000 --- a/application/views/category.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.cms.category.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.category.router import * # noqa: F401,F403 diff --git a/application/views/city.py b/application/views/city.py deleted file mode 100644 index 798a855..0000000 --- a/application/views/city.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.city.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.city.router import * # noqa: F401,F403 diff --git a/application/views/config.py b/application/views/config.py deleted file mode 100644 index f81e01e..0000000 --- a/application/views/config.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.configuration.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.router import * # noqa: F401,F403 diff --git a/application/views/config_item.py b/application/views/config_item.py deleted file mode 100644 index f81e01e..0000000 --- a/application/views/config_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.configuration.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.configuration.router import * # noqa: F401,F403 diff --git a/application/views/dept.py b/application/views/dept.py deleted file mode 100644 index a2757a3..0000000 --- a/application/views/dept.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.dept.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.dept.router import * # noqa: F401,F403 diff --git a/application/views/dict.py b/application/views/dict.py deleted file mode 100644 index 806f769..0000000 --- a/application/views/dict.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.dictionary.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.router import * # noqa: F401,F403 diff --git a/application/views/dict_item.py b/application/views/dict_item.py deleted file mode 100644 index 806f769..0000000 --- a/application/views/dict_item.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.dictionary.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.dictionary.router import * # noqa: F401,F403 diff --git a/application/views/file_template.py b/application/views/file_template.py deleted file mode 100644 index f14262a..0000000 --- a/application/views/file_template.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.file_template.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.file_template.router import * # noqa: F401,F403 diff --git a/application/views/index.py b/application/views/index.py deleted file mode 100644 index b4faac3..0000000 --- a/application/views/index.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.auth.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.auth.router import * # noqa: F401,F403 diff --git a/application/views/job.py b/application/views/job.py deleted file mode 100644 index e2e768f..0000000 --- a/application/views/job.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.job.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.job.router import * # noqa: F401,F403 diff --git a/application/views/level.py b/application/views/level.py deleted file mode 100644 index ec1c0c6..0000000 --- a/application/views/level.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.level.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.level.router import * # noqa: F401,F403 diff --git a/application/views/link.py b/application/views/link.py deleted file mode 100644 index d575a6a..0000000 --- a/application/views/link.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.cms.link.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.cms.link.router import * # noqa: F401,F403 diff --git a/application/views/login.py b/application/views/login.py deleted file mode 100644 index b4faac3..0000000 --- a/application/views/login.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.auth.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.auth.router import * # noqa: F401,F403 diff --git a/application/views/login_log.py b/application/views/login_log.py deleted file mode 100644 index 19514d2..0000000 --- a/application/views/login_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.log.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.router import * # noqa: F401,F403 diff --git a/application/views/menu.py b/application/views/menu.py deleted file mode 100644 index e02a8c1..0000000 --- a/application/views/menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.menu.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.menu.router import * # noqa: F401,F403 diff --git a/application/views/notice.py b/application/views/notice.py deleted file mode 100644 index 641886c..0000000 --- a/application/views/notice.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.notice.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.notice.router import * # noqa: F401,F403 diff --git a/application/views/operation_log.py b/application/views/operation_log.py deleted file mode 100644 index 19514d2..0000000 --- a/application/views/operation_log.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.log.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.log.router import * # noqa: F401,F403 diff --git a/application/views/param.py b/application/views/param.py deleted file mode 100644 index 3fa7d31..0000000 --- a/application/views/param.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.param.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.param.router import * # noqa: F401,F403 diff --git a/application/views/position.py b/application/views/position.py deleted file mode 100644 index 44ff690..0000000 --- a/application/views/position.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.position.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.position.router import * # noqa: F401,F403 diff --git a/application/views/role.py b/application/views/role.py deleted file mode 100644 index 472a90b..0000000 --- a/application/views/role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.role.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.role.router import * # noqa: F401,F403 diff --git a/application/views/role_menu.py b/application/views/role_menu.py deleted file mode 100644 index 10c4d90..0000000 --- a/application/views/role_menu.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.association.role_menu.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.role_menu.router import * # noqa: F401,F403 diff --git a/application/views/upload.py b/application/views/upload.py deleted file mode 100644 index 331de73..0000000 --- a/application/views/upload.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.upload.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.upload.router import * # noqa: F401,F403 diff --git a/application/views/user.py b/application/views/user.py deleted file mode 100644 index a3502e0..0000000 --- a/application/views/user.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.system.user.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.system.user.router import * # noqa: F401,F403 diff --git a/application/views/user_role.py b/application/views/user_role.py deleted file mode 100644 index 0b1e05d..0000000 --- a/application/views/user_role.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -路由已迁移至 src.modules.association.user_role.router。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.modules.association.user_role.router import * # noqa: F401,F403 diff --git a/config/__init__.py b/config/__init__.py index cdd8cba..03b88c5 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -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, diff --git a/config/database.py b/config/database.py index 84bd003..816819c 100644 --- a/config/database.py +++ b/config/database.py @@ -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 # ============================================================ # 数据库环境变量 diff --git a/docker/Dockerfile b/docker/Dockerfile index 2232356..b858a68 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -166,7 +166,7 @@ EXPOSE 8021 # ---------------------------------------------------------------------------- # 生产环境启动命令(使用 gunicorn 启动应用) # 配置文件:gunicorn.conf.py(在项目根目录) -CMD ["gunicorn", "-c", "gunicorn.conf.py", "app:app"] +CMD ["gunicorn", "-c", "gunicorn.conf.py", "src.wsgi:app"] # ============================================================================ # 附录:构建和测试指南 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 81db166..39b1809 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -115,7 +115,7 @@ services: # ------------------------------------------------------------------------ # 执行命令(覆盖 Dockerfile 中的 CMD) # 生产环境启动:使用 Gunicorn + Gevent - command: gunicorn -c gunicorn.conf.py app:app + command: gunicorn -c gunicorn.conf.py src.wsgi:app # ------------------------------------------------------------------------ # 日志配置(集中式日志管理) diff --git a/extensions/__init__.py b/extensions/__init__.py deleted file mode 100644 index a91296a..0000000 --- a/extensions/__init__.py +++ /dev/null @@ -1,104 +0,0 @@ -# +====================================================================== -# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ] -# +---------------------------------------------------------------------- -# | Copyright (c) 2021-2026 一米阳光团队 版权所有 -# +---------------------------------------------------------------------- -# | 开源协议: Apache-2.0 -# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。 -# +---------------------------------------------------------------------- -# | 官方网站: https://www.djangoadmin.cn -# +---------------------------------------------------------------------- -# | 研发团队: 一米阳光团队 荣誉出品 -# +====================================================================== -# | 版权和免责声明: -# | 一、知识产权声明 -# | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、 -# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权, -# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。 -# | 二、使用限制与禁止条款 -# | 您理解并同意,禁止将本产品用于以下任何行为: -# | 1. 任何违反中华人民共和国法律法规的用途; -# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为; -# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。 -# | 三、责任豁免 -# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失 -# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三 -# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。 -# | 四、违约与法律责任 -# | 如发现任何违反本声明的行为,本团队有权: -# | 1. 无条件配合公安机关及其他有权机关的调查取证工作; -# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失; -# | 3. 保留进一步采取刑事控告等法律措施的权利。 -# | 五、许可范围说明 -# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包 -# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通 -# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、 -# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造 -# | 成的一切经济损失及商誉损害。 -# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件 -# | 许可协议》附件为准。 -# +====================================================================== - -""" -扩展模块 -负责初始化所有第三方扩展 -""" - -from extensions.redis import init_redis -from extensions.mail import init_mail, mail -from extensions.scheduler import scheduler -from extensions.sqlalchemy import db -from flask_migrate import Migrate - -migrate = Migrate() - - -def register_extends(app): - """ - 注册并初始化所有第三方扩展 - - 功能说明: - 1. 初始化 SQLAlchemy 数据库扩展 - 2. 初始化 Redis 缓存扩展 - 3. 初始化应用中间件(请求/响应拦截) - - Args: - app: Flask 应用实例 - """ - # ============================================================ - # 1. 初始化 SQLAlchemy 数据库扩展 - # ============================================================ - # 将数据库实例绑定到 Flask 应用 - # 此时会读取 app.config 中的 SQLAlchemy 配置(如数据库连接 URI) - db.init_app(app) - - # ============================================================ - # 1.1 初始化 Flask-Migrate 数据库迁移扩展 - # ============================================================ - migrate.init_app(app, db) - - # ============================================================ - # 2. 初始化 Redis 缓存扩展 - # ============================================================ - # 配置 Redis 连接,用于缓存、会话存储等 - # 会读取 app.config 中的 REDIS_URL 配置 - init_redis(app) - - # ============================================================ - # 3. 初始化 Flask-Mail 邮件扩展 - # ============================================================ - init_mail(app) - - # ============================================================ - # 4. 初始化定时任务调度器(在数据库之后初始化) - # ============================================================ - scheduler.init_app(app) - - # ============================================================ - # 扩展添加指南 - # ============================================================ - # 如需添加新扩展,请按以下格式在此处添加: - # - # from extensions.celery import celery - # celery.init_app(app) - # ============================================================ diff --git a/extensions/mail.py b/extensions/mail.py deleted file mode 100644 index 0e72e6d..0000000 --- a/extensions/mail.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -扩展兼容 shim(绞杀者迁移期间保留) -============================================================= - -Flask-Mail 扩展已迁移至 src/core/mail.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.mail import * # noqa: F401,F403 diff --git a/extensions/redis.py b/extensions/redis.py deleted file mode 100644 index 88b4425..0000000 --- a/extensions/redis.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -扩展兼容 shim(绞杀者迁移期间保留) -============================================================= - -Redis 扩展已迁移至 src/core/redis_client.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.redis_client import * # noqa: F401,F403 diff --git a/extensions/scheduler.py b/extensions/scheduler.py deleted file mode 100644 index 125f9ee..0000000 --- a/extensions/scheduler.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -扩展兼容 shim(绞杀者迁移期间保留) -============================================================= - -定时任务调度器扩展已迁移至 src/core/scheduler.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.scheduler import * # noqa: F401,F403 diff --git a/extensions/sqlalchemy.py b/extensions/sqlalchemy.py deleted file mode 100644 index 91ff16c..0000000 --- a/extensions/sqlalchemy.py +++ /dev/null @@ -1,10 +0,0 @@ -""" -扩展兼容 shim(绞杀者迁移期间保留) -============================================================= - -SQLAlchemy 实例已迁移至 src/core/database.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 - -迁移说明:src/core/database.py -""" -from src.core.database import * # noqa: F401,F403 diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 170ab3a..023798c 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -2,7 +2,7 @@ Gunicorn 配置文件 ============================================================= -生产环境启动:gunicorn -c gunicorn.conf.py app:app +生产环境启动:gunicorn -c gunicorn.conf.py src.wsgi:app 设计要点: - 使用 gevent worker:单 worker 内协程并发,适合 I/O 密集型 diff --git a/src/app.py b/src/app.py new file mode 100644 index 0000000..95d883c --- /dev/null +++ b/src/app.py @@ -0,0 +1,154 @@ +""" +应用工厂模块 +============================================================= + +负责创建和配置 Flask 应用实例。 + +说明: + 原位于 application/factory.py,P7 切尾后迁移至 src/app.py。 + 依赖组合根在此注入(见 _inject_dependencies)。 +""" + +import os + +from flask import Flask +from flask_cors import CORS +from werkzeug.middleware.proxy_fix import ProxyFix + +from src.core.middleware import register_middleware, register_transaction, register_error_handlers, register_operation_log +from src.routes.v1 import register_v1 +from src.extensions import register_extends +from config import DatabaseConfig, REDIS_URL +from src.common.utils.json import JSONEncoder + +# 模型注册中心:确保 Flask-Migrate 全量识别表结构(见 src/models_registry.py) +import src.models_registry # noqa: F401 + + +def create_app(): + """ + 创建并配置 Flask 应用实例 + + 配置流程: + 1. 创建 Flask 核心对象 + 2. 配置 Redis 连接 + 3. 加载数据库配置 + 4. 设置 JSON 序列化器 + 5. 配置跨域资源共享 + 6. 注册操作日志与事务拦截器 + 7. 注册 API v1 路由 + 8. 初始化第三方扩展 + 9. 注册中间件 + 10. 注入依赖(权限提供方 / 操作日志写入器) + + Returns: + Flask: 配置完成的应用实例 + """ + # ============================================================ + # 创建 Flask 核心对象 + # ============================================================ + app = Flask( + __name__, + template_folder='templates', + static_folder='../static' + ) + + # ============================================================ + # Redis 配置(用于缓存和会话存储) + # ============================================================ + app.config['REDIS_URL'] = REDIS_URL + + # ============================================================ + # 加载数据库配置 + # ============================================================ + app.config.from_object(DatabaseConfig) + + # ============================================================ + # 自定义 JSON 序列化器(支持 datetime 等特殊类型) + # ============================================================ + app.json = JSONEncoder(app) + + # ============================================================ + # 跨域资源共享配置 + # ============================================================ + from config import CORS_ALLOWED_ORIGINS + if CORS_ALLOWED_ORIGINS: + allowed_origins = [origin.strip() for origin in CORS_ALLOWED_ORIGINS.split(',') if origin.strip()] + CORS( + app, + resources={r"/*": {"origins": allowed_origins}}, + supports_credentials=True + ) + else: + CORS( + app, + resources={r"/*": {"origins": "*"}}, + supports_credentials=False + ) + + # ============================================================ + # 可信代理配置(反向代理环境下获取真实客户端IP) + # ============================================================ + proxy_num = int(os.getenv('PROXY_NUM', 0)) + if proxy_num > 0: + app.wsgi_app = ProxyFix(app.wsgi_app, x_for=proxy_num, x_proto=proxy_num) + + # ============================================================ + # 注册操作日志自动记录中间件(须在事务拦截器之前) + # ============================================================ + register_operation_log(app) + + # ============================================================ + # 注册 AOP 事务拦截器 + # ============================================================ + register_transaction(app) + + # ============================================================ + # 注册 API v1 路由(全部业务蓝图挂载 /api/v1) + # ============================================================ + register_v1(app) + + # ============================================================ + # 初始化第三方扩展 + # ============================================================ + register_extends(app) + + # ============================================================ + # 注册中间件(请求/响应拦截处理) + # ============================================================ + register_middleware(app) + + # ============================================================ + # 注册全局异常处理器(最后注册,捕获所有异常) + # ============================================================ + register_error_handlers(app) + + # ============================================================ + # 依赖注入(组合根注入业务实现) + # ============================================================ + _inject_dependencies(app) + + return app + + +def _inject_dependencies(app): + """ + 依赖注入:向 core 中间件注入业务实现 + + 1. permission_provider:权限校验数据提供方(menu 服务) + 2. operation_log_writer:操作日志写入器(log 服务) + """ + from src.modules.system.menu.service import get_user_permissions + from src.modules.log.service import record_operation_log + + # ---- 权限提供方 ---- + class MenuPermissionProvider: + """权限数据提供方(适配 menu 服务)。""" + + def get_user_permissions(self, user_id): + return get_user_permissions(user_id) + + app.extensions['permission_provider'] = MenuPermissionProvider() + + # ---- 操作日志写入器 ---- + app.extensions['operation_log_writer'] = record_operation_log diff --git a/src/common/utils/regular.py b/src/common/utils/regular.py index e67bd1b..24fb8d8 100644 --- a/src/common/utils/regular.py +++ b/src/common/utils/regular.py @@ -60,7 +60,7 @@ def get_err(form): str: 拼接后的错误信息字符串,多个错误用 '/' 分隔 Examples: - >>> from application.forms.level import LevelForm + >>> from src.modules.system.level.schema import LevelForm >>> form = LevelForm(request.form) >>> if not form.validate(): ... err_msg = get_err(form) diff --git a/src/extensions.py b/src/extensions.py new file mode 100644 index 0000000..35250b6 --- /dev/null +++ b/src/extensions.py @@ -0,0 +1,42 @@ +""" +扩展初始化编排 +============================================================= + +整合自原 extensions/ 包。实例定义位于 src/core/(database/redis_client/ +mail/scheduler),本模块仅负责各扩展的 init_app 编排。 + +依赖约束:仅依赖 src.core,不依赖 modules 层。 +""" + +from flask_migrate import Migrate + +from src.core.database import db +from src.core.redis_client import init_redis +from src.core.mail import init_mail +from src.core.scheduler import scheduler + +# Flask-Migrate 实例(migrations/env.py 通过 current_app.extensions['migrate'] 使用) +migrate = Migrate() + + +def register_extends(app): + """ + 注册并初始化所有第三方扩展。 + + Args: + app: Flask 应用实例 + """ + # 1. SQLAlchemy 数据库 + db.init_app(app) + + # 2. Flask-Migrate 数据库迁移 + migrate.init_app(app, db) + + # 3. Redis 缓存 + init_redis(app) + + # 4. Flask-Mail 邮件 + init_mail(app) + + # 5. APScheduler 定时任务 + scheduler.init_app(app) diff --git a/src/modules/association/role_menu/router.py b/src/modules/association/role_menu/router.py index 528c530..6388ccc 100644 --- a/src/modules/association/role_menu/router.py +++ b/src/modules/association/role_menu/router.py @@ -54,8 +54,8 @@ from flask import Blueprint -from application.middleware.check_permission import check_permission -from application.middleware.check_demo import check_demo +from src.core.permission import check_permission +from src.core.middleware import check_demo from src.modules.system.role import service as role_menu from src.common.utils.request import parse_request_body diff --git a/src/modules/association/user_role/router.py b/src/modules/association/user_role/router.py index 67a3d90..5ffb579 100644 --- a/src/modules/association/user_role/router.py +++ b/src/modules/association/user_role/router.py @@ -13,8 +13,8 @@ from flask import Blueprint -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.user import service as user_role from src.core import response as R user_role_blue = Blueprint('user_role', __name__, url_prefix='/user/role') diff --git a/src/modules/auth/router.py b/src/modules/auth/router.py index 4161af3..e6eb7c1 100644 --- a/src/modules/auth/router.py +++ b/src/modules/auth/router.py @@ -47,7 +47,7 @@ """ from flask import Blueprint from sqlalchemy import and_ -from application.middleware.check_demo import check_demo +from src.core.middleware import check_demo from src.modules.auth import service as login from src.modules.log import service as login_log from src.modules.system.user.models import User diff --git a/src/modules/city/router.py b/src/modules/city/router.py index 06ac088..70f418c 100644 --- a/src/modules/city/router.py +++ b/src/modules/city/router.py @@ -57,8 +57,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.city import service as city from src.common.utils.request import parse_request_body diff --git a/src/modules/cms/article/router.py b/src/modules/cms/article/router.py index d68f76c..a58d969 100644 --- a/src/modules/cms/article/router.py +++ b/src/modules/cms/article/router.py @@ -18,8 +18,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.cms.article import service as article from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/cms/category/router.py b/src/modules/cms/category/router.py index e1657eb..afadb3b 100644 --- a/src/modules/cms/category/router.py +++ b/src/modules/cms/category/router.py @@ -17,8 +17,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.cms.category import service as category from src.common.utils.request import parse_request_body diff --git a/src/modules/cms/link/router.py b/src/modules/cms/link/router.py index d21bacb..8e8f338 100644 --- a/src/modules/cms/link/router.py +++ b/src/modules/cms/link/router.py @@ -57,8 +57,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.cms.link import service as link from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/configuration/router.py b/src/modules/configuration/router.py index 60a70e2..c5d5610 100644 --- a/src/modules/configuration/router.py +++ b/src/modules/configuration/router.py @@ -55,8 +55,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.configuration import service as config from src.modules.configuration import service as config_item from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/dictionary/router.py b/src/modules/dictionary/router.py index 42826a2..bc3c247 100644 --- a/src/modules/dictionary/router.py +++ b/src/modules/dictionary/router.py @@ -55,8 +55,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.dictionary import service as dict from src.modules.dictionary import service as dict_item from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/file_template/router.py b/src/modules/file_template/router.py index d7c4e09..dfc18a7 100644 --- a/src/modules/file_template/router.py +++ b/src/modules/file_template/router.py @@ -17,8 +17,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.file_template import service as file_template from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/job/router.py b/src/modules/job/router.py index f90c059..977a542 100644 --- a/src/modules/job/router.py +++ b/src/modules/job/router.py @@ -7,8 +7,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.job import service as job from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/log/router.py b/src/modules/log/router.py index 256a169..e234300 100644 --- a/src/modules/log/router.py +++ b/src/modules/log/router.py @@ -17,8 +17,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.log import service as login_log from src.modules.log import service as operation_log from src.common.utils.request import parse_batch_ids diff --git a/src/modules/notice/router.py b/src/modules/notice/router.py index 105e11d..8ea7175 100644 --- a/src/modules/notice/router.py +++ b/src/modules/notice/router.py @@ -55,8 +55,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.notice import service as notice from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/param/router.py b/src/modules/param/router.py index b2ccbf8..38ae364 100644 --- a/src/modules/param/router.py +++ b/src/modules/param/router.py @@ -59,8 +59,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.param import service as param from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/system/dept/router.py b/src/modules/system/dept/router.py index cb43cc1..63e408b 100644 --- a/src/modules/system/dept/router.py +++ b/src/modules/system/dept/router.py @@ -57,8 +57,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.dept import service as dept from src.common.utils.request import parse_request_body diff --git a/src/modules/system/level/router.py b/src/modules/system/level/router.py index 9725e0c..ce11a4d 100644 --- a/src/modules/system/level/router.py +++ b/src/modules/system/level/router.py @@ -58,8 +58,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.level import service as level from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/system/level/service.py b/src/modules/system/level/service.py index e873389..ee70469 100644 --- a/src/modules/system/level/service.py +++ b/src/modules/system/level/service.py @@ -75,7 +75,6 @@ from sqlalchemy import and_ from openpyxl.reader.excel import load_workbook from openpyxl.workbook import Workbook -import utils from src.common.constants.common import PAGE_SIZE from src.modules.system.level.schema import LevelForm, LevelStatusForm @@ -530,7 +529,7 @@ def get_level_list(): # 转换为字典列表 result = [] for level in level_list: - result.append(utils.load2dict(level)) + result.append(model_to_dict(level)) return result diff --git a/src/modules/system/menu/router.py b/src/modules/system/menu/router.py index cc47b94..0101f75 100644 --- a/src/modules/system/menu/router.py +++ b/src/modules/system/menu/router.py @@ -55,8 +55,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.menu import service as menu from src.common.utils.request import parse_request_body diff --git a/src/modules/system/position/router.py b/src/modules/system/position/router.py index a6645e6..4bf517e 100644 --- a/src/modules/system/position/router.py +++ b/src/modules/system/position/router.py @@ -57,8 +57,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.position import service as position from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/system/role/router.py b/src/modules/system/role/router.py index 8c820fb..b5b44f7 100644 --- a/src/modules/system/role/router.py +++ b/src/modules/system/role/router.py @@ -57,8 +57,8 @@ """ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.role import service as role from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/system/user/router.py b/src/modules/system/user/router.py index adf4fc7..5d3e337 100644 --- a/src/modules/system/user/router.py +++ b/src/modules/system/user/router.py @@ -58,8 +58,8 @@ from flask import Blueprint, request -from application.middleware.check_demo import check_demo -from application.middleware.check_permission import check_permission +from src.core.middleware import check_demo +from src.core.permission import check_permission from src.modules.system.user import service as user from src.common.utils.request import parse_batch_ids, parse_request_body diff --git a/src/modules/upload/router.py b/src/modules/upload/router.py index dc4fde7..0ca95d4 100644 --- a/src/modules/upload/router.py +++ b/src/modules/upload/router.py @@ -52,18 +52,19 @@ from flask import Blueprint -from application.middleware.check_demo import check_demo +from src.core.middleware import check_demo from src.modules.upload import service as upload -upload_blue = Blueprint('upload', __name__, url_prefix='/upload') from config import UPLOAD_ALLOWED_EXTS -from src.core import response as R + +upload_blue = Blueprint("upload", __name__, url_prefix="/upload") # ============================================================ # 文件上传 # ============================================================ -@upload_blue.route('/uploadFile', methods=["POST"]) + +@upload_blue.route("/uploadFile", methods=["POST"]) @check_demo def upload_file(): """ diff --git a/src/wsgi.py b/src/wsgi.py new file mode 100644 index 0000000..2da02f0 --- /dev/null +++ b/src/wsgi.py @@ -0,0 +1,11 @@ +""" +生产 WSGI 入口 +============================================================= + +启动方式: + gunicorn -c gunicorn.conf.py src.wsgi:app +""" + +from src.app import create_app + +app = create_app() diff --git a/tests/unit/test_core/test_response.py b/tests/unit/test_core/test_response.py index 2336282..25c3d6d 100644 --- a/tests/unit/test_core/test_response.py +++ b/tests/unit/test_core/test_response.py @@ -8,7 +8,7 @@ R 统一响应格式单元测试 (fixture:flask_app,见 tests/conftest.py)。 """ -from utils import R +from src.core import response as R class TestOk: diff --git a/utils/.gitignore b/utils/.gitignore deleted file mode 100644 index e0943df..0000000 --- a/utils/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# ============================================================ -# utils/ 目录专用忽略 -# ============================================================ -# 说明: -# 1. ip2region.xdb(10MB IP 数据库二进制)由版本库直接管理, -# 应用运行必需,不在此忽略。 -# 2. 缓存目录由根目录 .gitignore 统一处理,此处仅留占位说明。 -# ============================================================ diff --git a/utils/__init__.py b/utils/__init__.py deleted file mode 100644 index 480679b..0000000 --- a/utils/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -""" -utils 包初始化 -============================================================= - -将常用工具函数从包级别导出,便于业务代码使用: - from utils import R, regular, password -""" - -import utils.response as R -import utils.regular as regular -import utils.password as password diff --git a/utils/captcha.py b/utils/captcha.py deleted file mode 100644 index ea7357a..0000000 --- a/utils/captcha.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -验证码工具已迁移至 src.common.utils.captcha。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.captcha import * # noqa: F401,F403 diff --git a/utils/case_converter.py b/utils/case_converter.py deleted file mode 100644 index 928d12a..0000000 --- a/utils/case_converter.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -命名转换工具已迁移至 src.common.utils.case_converter。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.case_converter import * # noqa: F401,F403 diff --git a/utils/file.py b/utils/file.py deleted file mode 100644 index b134991..0000000 --- a/utils/file.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -文件操作工具已迁移至 src.common.utils.file。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.file import * # noqa: F401,F403 diff --git a/utils/formatter.py b/utils/formatter.py deleted file mode 100644 index 34ce01f..0000000 --- a/utils/formatter.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -格式化工具已迁移至 src.common.utils.formatter。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.formatter import * # noqa: F401,F403 diff --git a/utils/ip.py b/utils/ip.py deleted file mode 100644 index 8e0240f..0000000 --- a/utils/ip.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -IP 解析工具已迁移至 src.common.utils.ip。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.ip import * # noqa: F401,F403 diff --git a/utils/ip2region.py b/utils/ip2region.py deleted file mode 100644 index 8661abd..0000000 --- a/utils/ip2region.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -IP 地理位置查询已迁移至 src.common.utils.ip2region。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.ip2region import * # noqa: F401,F403 diff --git a/utils/ip2region.xdb b/utils/ip2region.xdb deleted file mode 100644 index 6b53b1f..0000000 Binary files a/utils/ip2region.xdb and /dev/null differ diff --git a/utils/json.py b/utils/json.py deleted file mode 100644 index 3f49891..0000000 --- a/utils/json.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -JSON 工具已迁移至 src.common.utils.json。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.json import * # noqa: F401,F403 diff --git a/utils/jwt.py b/utils/jwt.py deleted file mode 100644 index a3cf852..0000000 --- a/utils/jwt.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -JWT 工具已迁移至 src/core/jwt.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.jwt import * # noqa: F401,F403 diff --git a/utils/model_utils.py b/utils/model_utils.py deleted file mode 100644 index 32da8f9..0000000 --- a/utils/model_utils.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -模型工具已迁移至 src.common.utils.model_utils。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.model_utils import * # noqa: F401,F403 diff --git a/utils/password.py b/utils/password.py deleted file mode 100644 index ca0cdf8..0000000 --- a/utils/password.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -密码工具已迁移至 src/core/password.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.password import * # noqa: F401,F403 diff --git a/utils/redis_client.py b/utils/redis_client.py deleted file mode 100644 index 8065360..0000000 --- a/utils/redis_client.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -Redis 客户端封装已迁移至 src/core/redis_client.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.redis_client import * # noqa: F401,F403 diff --git a/utils/regular.py b/utils/regular.py deleted file mode 100644 index 1fafbab..0000000 --- a/utils/regular.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -表单错误提取已迁移至 src.common.utils.regular。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.regular import * # noqa: F401,F403 diff --git a/utils/request.py b/utils/request.py deleted file mode 100644 index d93eeaf..0000000 --- a/utils/request.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -请求解析工具已迁移至 src.common.utils.request。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.request import * # noqa: F401,F403 diff --git a/utils/response.py b/utils/response.py deleted file mode 100644 index ad73475..0000000 --- a/utils/response.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -统一响应模块已迁移至 src/core/response.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.response import * # noqa: F401,F403 diff --git a/utils/rich_text.py b/utils/rich_text.py deleted file mode 100644 index 663477a..0000000 --- a/utils/rich_text.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -富文本工具已迁移至 src.common.utils.rich_text。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.rich_text import * # noqa: F401,F403 diff --git a/utils/security.py b/utils/security.py deleted file mode 100644 index d0ebba5..0000000 --- a/utils/security.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -安全工具已迁移至 src/core/security.py。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.core.security import * # noqa: F401,F403 diff --git a/utils/user_agent.py b/utils/user_agent.py deleted file mode 100644 index aff3820..0000000 --- a/utils/user_agent.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -兼容 shim(绞杀者迁移期间保留) -============================================================= - -UA 解析工具已迁移至 src.common.utils.user_agent。 -本文件仅作兼容转发,最终在 P7(切尾)阶段删除。 -""" -from src.common.utils.user_agent import * # noqa: F401,F403