This commit is contained in:
@@ -1,25 +0,0 @@
|
|||||||
# 版本变更日志
|
|
||||||
|
|
||||||
本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) 规范。
|
|
||||||
|
|
||||||
## [v3.0.0] - 2026-08-14
|
|
||||||
|
|
||||||
### 架构重构
|
|
||||||
- 采用 `src/` 布局,引入 Poetry 依赖管理与项目打包
|
|
||||||
- 引入 DDD 分层:`domain/`(实体、值对象、领域事件、仓储接口)
|
|
||||||
- 配置迁移至 Pydantic Settings(`.env` 驱动)
|
|
||||||
- 表单校验由 WTForms 迁移至 Pydantic schemas
|
|
||||||
- 密码加密由 MD5 升级为 bcrypt(兼容旧 MD5 密码自动升级)
|
|
||||||
- 数据访问引入 Repository 模式与读写分离支持
|
|
||||||
- API 统一挂载 `/api/v1` 前缀
|
|
||||||
- 新增核心基础设施:异常体系、事件总线、缓存管理器、结构化日志、统一响应
|
|
||||||
|
|
||||||
### 增强
|
|
||||||
- 新增健康检查端点 `/api/v1/health`
|
|
||||||
- 新增优雅关闭、链路追踪 ID、操作日志、限流中间件
|
|
||||||
- 新增 pytest 测试骨架与 CI/CD 流水线
|
|
||||||
- 新增部署配置(nginx/supervisor/prometheus/grafana/kubernetes)
|
|
||||||
|
|
||||||
## [v2.7.0] - 历史版本
|
|
||||||
|
|
||||||
- 见 `document/版本更新说明.txt`
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
# 贡献指南
|
|
||||||
|
|
||||||
感谢您对 DjangoAdmin Tornado+EleVue 项目的关注!
|
|
||||||
|
|
||||||
## 开发环境
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 安装依赖
|
|
||||||
poetry install
|
|
||||||
|
|
||||||
# 启动服务(默认端口 8041)
|
|
||||||
poetry run python app.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## 代码规范
|
|
||||||
|
|
||||||
- 运行 `poetry run flake8 src tests` 检查代码规范
|
|
||||||
- 运行 `poetry run mypy src` 做类型检查
|
|
||||||
- 运行 `poetry run ruff check --fix src tests` 自动格式化
|
|
||||||
- 提交前建议安装 pre-commit 钩子:`poetry run pre-commit install`
|
|
||||||
|
|
||||||
## 测试
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 单元测试
|
|
||||||
poetry run pytest tests/unit
|
|
||||||
|
|
||||||
# 全部测试
|
|
||||||
poetry run pytest
|
|
||||||
```
|
|
||||||
|
|
||||||
集成测试需要本地 MySQL 与 Redis 服务,未配置时自动跳过。
|
|
||||||
|
|
||||||
## 提交规范
|
|
||||||
|
|
||||||
- 提交信息使用中文,遵循语义化描述(feat/fix/refactor/docs/test/chore)
|
|
||||||
- 涉及新功能请同时补充测试
|
|
||||||
- 涉及 API 变更请同步更新 `document/api/swagger.yaml`
|
|
||||||
@@ -75,17 +75,29 @@ DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一
|
|||||||
## 📁 项目结构
|
## 📁 项目结构
|
||||||
|
|
||||||
```
|
```
|
||||||
|
├── app.py # 应用启动入口(python app.py)
|
||||||
|
├── generator.py # 代码生成器 CLI 入口
|
||||||
|
├── config.json # 代码生成器配置
|
||||||
|
├── pyproject.toml # Poetry 项目配置(依赖来源)
|
||||||
|
├── poetry.lock # 依赖锁定文件
|
||||||
|
├── requirements.txt # Python 依赖清单(纯文本备选)
|
||||||
|
├── alembic.ini # Alembic 迁移配置
|
||||||
|
├── Makefile # 常用命令快捷入口
|
||||||
|
├── Dockerfile # 镜像构建
|
||||||
|
├── docker-compose.yml # Docker 编排
|
||||||
|
├── .env # 环境变量配置
|
||||||
|
├── .env.example # 环境变量示例
|
||||||
├── src/ # 后端源码目录
|
├── src/ # 后端源码目录
|
||||||
│ ├── main.py # 应用入口
|
│ ├── app.py # 应用工厂(create_app)
|
||||||
|
│ ├── bootstrap.py # 启动引导(参数解析、信号处理)
|
||||||
│ ├── api/ # API 路由层
|
│ ├── api/ # API 路由层
|
||||||
│ │ ├── __init__.py # 路由注册
|
|
||||||
│ │ ├── deps.py # 全局依赖
|
|
||||||
│ │ └── v1/
|
│ │ └── v1/
|
||||||
│ │ ├── router.py # 路由集中注册
|
│ │ ├── router.py # 路由集中注册(build_routes)
|
||||||
│ │ └── endpoints/ # 各模块端点定义
|
│ │ ├── auth.py # 登录/登出/验证码/令牌刷新
|
||||||
│ │ ├── auth.py # 登录/登出/验证码
|
|
||||||
│ │ ├── user.py # 用户管理
|
│ │ ├── user.py # 用户管理
|
||||||
|
│ │ ├── user_role.py # 用户角色分配
|
||||||
│ │ ├── role.py # 角色管理
|
│ │ ├── role.py # 角色管理
|
||||||
|
│ │ ├── role_menu.py # 角色菜单分配
|
||||||
│ │ ├── menu.py # 菜单管理
|
│ │ ├── menu.py # 菜单管理
|
||||||
│ │ ├── dept.py # 部门管理
|
│ │ ├── dept.py # 部门管理
|
||||||
│ │ ├── level.py # 职级管理
|
│ │ ├── level.py # 职级管理
|
||||||
@@ -106,83 +118,116 @@ DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一
|
|||||||
│ │ ├── login_log.py # 登录日志
|
│ │ ├── login_log.py # 登录日志
|
||||||
│ │ ├── operation_log.py # 操作日志
|
│ │ ├── operation_log.py # 操作日志
|
||||||
│ │ ├── upload.py # 文件上传
|
│ │ ├── upload.py # 文件上传
|
||||||
│ │ └── generator.py # 代码生成器
|
│ │ ├── index.py # 首页菜单/用户信息
|
||||||
|
│ │ └── generator.py # 代码生成器 API
|
||||||
│ ├── core/ # 核心基础设施
|
│ ├── core/ # 核心基础设施
|
||||||
│ │ ├── config/ # 配置模块
|
│ │ ├── base_handler.py # 请求处理器基类(认证、异常、会话回收)
|
||||||
│ │ ├── app.py # 应用工厂
|
│ │ ├── base_model.py # 数据模型基类(审计字段、to_dict)
|
||||||
│ │ ├── database.py # 数据库引擎/会话管理
|
│ │ ├── base_repository.py # 仓储基类(CRUD、分页、软删除)
|
||||||
│ │ ├── redis_client.py # Redis 异步客户端
|
│ │ ├── base_schema.py # Pydantic Schema 基类
|
||||||
│ │ ├── jwt.py # 令牌处理
|
│ │ ├── base_service.py # 服务基类(模板方法 CRUD)
|
||||||
│ │ ├── password.py # 密码加密
|
│ │ ├── context.py # 请求级上下文(current_user_id 等 contextvars)
|
||||||
│ │ ├── response.py # 统一响应封装
|
│ │ ├── database.py # 数据库引擎/会话管理(读写分离)
|
||||||
│ │ ├── exceptions.py # 全局异常处理
|
│ │ ├── redis.py # Redis 客户端封装
|
||||||
│ │ ├── security.py # 安全工具
|
│ │ ├── jwt.py # JWT 签发/解析/黑名单/刷新
|
||||||
│ │ ├── access_decorators.py # 权限装饰器
|
│ │ ├── password.py # 双盐 bcrypt 密码加密
|
||||||
│ │ ├── base_model.py # 基础模型
|
│ │ ├── response.py # 统一响应封装(R.ok/R.failed)
|
||||||
│ │ ├── base_db.py # 数据库操作基类
|
│ │ ├── exceptions.py # 自定义异常体系
|
||||||
│ │ ├── base_repository.py # 仓储基类
|
│ │ ├── logger.py # 结构化日志配置
|
||||||
│ │ ├── base_service.py # 服务基类
|
│ │ ├── metrics.py # 指标采集
|
||||||
│ │ └── logger.py # 日志配置
|
│ │ └── tracer.py # 链路追踪
|
||||||
│ ├── modules/ # 业务模块(数据模型 + 仓储 + 服务)
|
│ ├── config/ # 配置模块(Pydantic Settings)
|
||||||
│ │ ├── auth/ # 认证模块
|
│ │ ├── app.py # 应用配置(TORNADO_DEMO 等)
|
||||||
│ │ ├── system/ # 系统管理
|
│ │ ├── database.py # 数据库配置
|
||||||
|
│ │ ├── redis.py # Redis 配置
|
||||||
|
│ │ ├── auth.py # 认证配置(JWT)
|
||||||
|
│ │ ├── captcha.py # 验证码配置
|
||||||
|
│ │ ├── email.py # 邮件配置
|
||||||
|
│ │ └── logging.py # 日志配置
|
||||||
|
│ ├── constants/ # 常量定义
|
||||||
|
│ │ └── __init__.py # 通用常量与提示文案
|
||||||
|
│ ├── common/ # 公共组件
|
||||||
|
│ │ ├── middleware/ # 中间件/装饰器
|
||||||
|
│ │ │ ├── authentication.py # JWT 认证(login_required)
|
||||||
|
│ │ │ ├── cors.py # 跨域处理
|
||||||
|
│ │ │ ├── access_decorators.py # 权限校验 + 演示模式拦截
|
||||||
|
│ │ │ ├── operation_log.py # 操作日志装饰器
|
||||||
|
│ │ │ ├── login_log.py # 登录日志装饰器
|
||||||
|
│ │ │ ├── trace_id.py # 链路追踪 ID 注入
|
||||||
|
│ │ │ └── metrics.py # 请求指标中间件
|
||||||
|
│ │ ├── permission.py # 跨模块权限解析(Redis 缓存)
|
||||||
|
│ │ └── utils/ # 工具函数
|
||||||
|
│ │ ├── crypto.py # 密码加密门面
|
||||||
|
│ │ ├── captcha.py # 验证码生成与验证
|
||||||
|
│ │ ├── file.py # 文件操作(mkdir、魔术字节校验)
|
||||||
|
│ │ ├── rich_text.py # 富文本处理(XSS 清洗、路径穿越防护)
|
||||||
|
│ │ ├── ip.py # 客户端 IP 获取(代理透传)
|
||||||
|
│ │ ├── ip2region.py # IP 归属地离线查询
|
||||||
|
│ │ ├── dict_util.py # 字典 Redis 缓存读取
|
||||||
|
│ │ ├── helpers.py # 通用辅助(UA 解析、参数脱敏)
|
||||||
|
│ │ └── validators.py # 通用校验器
|
||||||
|
│ ├── modules/ # 业务模块(每个模块 5 文件)
|
||||||
|
│ │ ├── auth/ # 认证模块(登录/登出/验证码/令牌刷新)
|
||||||
|
│ │ ├── user/ # 用户管理
|
||||||
|
│ │ ├── user_role/ # 用户角色关联
|
||||||
|
│ │ ├── role/ # 角色管理
|
||||||
|
│ │ ├── role_menu/ # 角色菜单关联
|
||||||
|
│ │ ├── menu/ # 菜单管理(动态路由 + 权限节点)
|
||||||
|
│ │ ├── dept/ # 部门管理
|
||||||
|
│ │ ├── level/ # 职级管理
|
||||||
|
│ │ ├── position/ # 岗位管理
|
||||||
│ │ ├── dictionary/ # 字典模块
|
│ │ ├── dictionary/ # 字典模块
|
||||||
|
│ │ │ ├── dict/ # 字典管理
|
||||||
|
│ │ │ └── dict_item/ # 字典项管理
|
||||||
│ │ ├── configuration/ # 配置模块
|
│ │ ├── configuration/ # 配置模块
|
||||||
│ │ ├── article/ # 文章模块
|
│ │ │ ├── config/ # 配置管理
|
||||||
│ │ ├── category/ # 分类模块
|
│ │ │ └── config_item/ # 配置项管理
|
||||||
│ │ ├── city/ # 城市模块
|
│ │ ├── notice/ # 通知公告
|
||||||
│ │ ├── notice/ # 通知公告模块
|
│ │ ├── article/ # 文章管理
|
||||||
│ │ ├── link/ # 友情链接模块
|
│ │ ├── category/ # 分类管理
|
||||||
│ │ ├── param/ # 参数模块
|
│ │ ├── city/ # 城市管理(树形结构)
|
||||||
│ │ ├── job/ # 定时任务模块
|
│ │ ├── link/ # 友情链接
|
||||||
│ │ ├── job_log/ # 任务日志模块
|
│ │ ├── param/ # 参数管理
|
||||||
│ │ ├── file_template/ # 文件模板模块
|
│ │ ├── file_template/ # 文件模板
|
||||||
│ │ ├── login_log/ # 登录日志模块
|
│ │ ├── job/ # 定时任务(APScheduler)
|
||||||
│ │ ├── operation_log/ # 操作日志模块
|
│ │ ├── job_log/ # 任务执行日志
|
||||||
│ │ ├── upload/ # 文件上传模块
|
│ │ ├── login_log/ # 登录日志(IP 归属地解析)
|
||||||
│ │ ├── generator/ # 代码生成器模块
|
│ │ ├── operation_log/ # 操作日志(审计追踪)
|
||||||
│ │ └── example/ # 示例模块
|
│ │ ├── upload/ # 文件上传
|
||||||
│ ├── middleware/ # HTTP 中间件
|
│ │ ├── generator/ # 代码生成器
|
||||||
│ │ ├── cors.py # 跨域配置
|
│ │ └── example/ # 示例模块(开发参考)
|
||||||
│ │ ├── rate_limit.py # 请求限流
|
│ └── extensions/ # 扩展(可选组件)
|
||||||
│ │ ├── db_session.py # 请求级数据库会话管理
|
│ ├── sqlalchemy.py # SQLAlchemy 单例导出
|
||||||
│ │ ├── operation_log.py # 操作日志自动记录
|
│ ├── redis.py # Redis 单例导出
|
||||||
│ │ └── logger.py # 请求日志
|
│ ├── swagger.py # Swagger(占位)
|
||||||
│ ├── constants/ # 常量与枚举
|
│ └── sentry.py # Sentry(占位)
|
||||||
│ │ ├── constants.py # 业务常量
|
|
||||||
│ │ ├── enums.py # 枚举定义
|
|
||||||
│ │ └── pagination.py # 分页参数
|
|
||||||
│ └── utils/ # 工具函数
|
|
||||||
│ ├── request.py # 请求解析工具
|
|
||||||
│ ├── captcha/ # 验证码生成
|
|
||||||
│ ├── file/ # 文件处理
|
|
||||||
│ ├── ip/ # IP 归属地查询
|
|
||||||
│ └── perm_cache/ # 权限缓存
|
|
||||||
├── scripts/ # 运维脚本
|
├── scripts/ # 运维脚本
|
||||||
│ ├── init_db.py # 数据库初始化
|
│ ├── seed_dict.py # 业务字典初始化(幂等)
|
||||||
│ ├── seed_dict.py # 字典数据初始化
|
|
||||||
│ ├── seed.py # 通用数据填充
|
│ ├── seed.py # 通用数据填充
|
||||||
│ ├── migrate_db.py # 跨库数据迁移工具
|
│ ├── init_db.py # 数据库初始化
|
||||||
│ └── demo_job_loop.py # 定时任务演示脚本
|
│ ├── migrate_db.py # 跨库数据迁移工具(MySQL→PG/MSSQL/SQLite/Oracle)
|
||||||
|
│ ├── migrate.py # 迁移辅助
|
||||||
|
│ ├── deploy.py # 部署脚本
|
||||||
|
│ ├── health_check.py # 健康检查
|
||||||
|
│ └── deploy.py # 部署脚本
|
||||||
├── tests/ # 测试目录
|
├── tests/ # 测试目录
|
||||||
│ ├── contract/ # 契约快照测试
|
|
||||||
│ ├── unit/ # 单元测试
|
│ ├── unit/ # 单元测试
|
||||||
│ └── integration/ # 集成测试
|
│ │ ├── core/ # 核心模块测试(jwt、crypto、response、base_service、repository)
|
||||||
├── migrations/ # 数据库迁移
|
│ │ └── modules/ # 业务模块测试(schema、scheduler)
|
||||||
│ ├── alembic.ini # 迁移配置
|
│ ├── integration/ # 集成测试(需 MySQL + Redis)
|
||||||
│ ├── env.py # 迁移环境
|
│ │ ├── test_api.py # API 接口测试
|
||||||
│ └── versions/ # 迁移版本
|
│ │ ├── test_database.py # 数据库连接测试
|
||||||
├── deploy/ # 部署配置
|
│ │ └── test_redis.py # Redis 连接测试
|
||||||
│ ├── nginx.conf # Nginx 配置
|
│ └── fixtures/ # 测试夹具
|
||||||
│ └── supervisor.conf # Supervisor 配置
|
│ └── factories.py # 测试数据工厂
|
||||||
├── document/ # 项目文档
|
├── alembic/ # Alembic 数据库迁移
|
||||||
├── docker-compose.yml # Docker 编排
|
│ └── versions/ # 迁移版本文件
|
||||||
├── Dockerfile # 镜像构建
|
└── document/ # 项目文档
|
||||||
├── Makefile # 常用命令快捷入口
|
├── mysql/ # MySQL 初始化 SQL
|
||||||
├── alembic.ini # 迁移配置
|
├── postgresql/ # PostgreSQL 初始化 SQL
|
||||||
├── requirements.txt # Python 依赖清单
|
├── sqlserver/ # SQL Server 初始化 SQL
|
||||||
├── pytest.ini # 测试配置
|
├── sqlite/ # SQLite 初始化 SQL
|
||||||
└── .env # 环境变量配置
|
└── sql/ # 通用 SQL 脚本
|
||||||
```
|
```
|
||||||
|
|
||||||
## 👷 软件信息
|
## 👷 软件信息
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
# 开发环境覆盖配置(docker compose up 时自动加载)
|
|
||||||
# 提供本地 MySQL 与 Redis 服务,并将源码热挂载
|
|
||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
|
||||||
# MySQL 数据库
|
|
||||||
mysql:
|
|
||||||
image: mysql:8.0
|
|
||||||
container_name: tornado_elevue_mysql
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: 123456
|
|
||||||
MYSQL_DATABASE: djangoadmin.tornado.elevue
|
|
||||||
TZ: Asia/Shanghai
|
|
||||||
ports:
|
|
||||||
- "3306:3306"
|
|
||||||
volumes:
|
|
||||||
- mysql_data:/var/lib/mysql
|
|
||||||
- ./document/sql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
|
||||||
|
|
||||||
# Redis 缓存
|
|
||||||
redis:
|
|
||||||
image: redis:7
|
|
||||||
container_name: tornado_elevue_redis
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- "6379:6379"
|
|
||||||
|
|
||||||
# 后端服务(开发模式:源码热挂载 + 自动重载)
|
|
||||||
tornado_elevue:
|
|
||||||
build:
|
|
||||||
context: ./
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
volumes:
|
|
||||||
- ./src:/data/apps/src
|
|
||||||
- ./uploads:/data/apps/uploads
|
|
||||||
- ./logs:/data/apps/logs
|
|
||||||
environment:
|
|
||||||
- TORNADO_DEBUG=True
|
|
||||||
depends_on:
|
|
||||||
- mysql
|
|
||||||
- redis
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
mysql_data:
|
|
||||||
+18
-17
@@ -1,28 +1,29 @@
|
|||||||
version: '3.8'
|
# +======================================================================
|
||||||
|
# | 模块: Docker Compose 配置
|
||||||
|
# | 说明: 应用服务容器编排
|
||||||
|
# +======================================================================
|
||||||
|
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
# 应用服务
|
|
||||||
services:
|
services:
|
||||||
# 后端服务
|
# 后端服务
|
||||||
tornado_elevue:
|
tornado_elevue:
|
||||||
image: tornado_elevue:latest
|
image: tornado_elevue # 镜像名称
|
||||||
container_name: tornado_elevue
|
container_name: tornado_elevue # 容器名称
|
||||||
build:
|
build: # 构建镜像
|
||||||
context: ./
|
context: ./
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
restart: always
|
restart: always # 始终自动重启
|
||||||
|
network_mode: host # host 模式;ports 映射会被忽略,改 bridge 时需将 DB_HOST/REDIS_HOST 指向宿主机并启用端口映射
|
||||||
ports:
|
ports:
|
||||||
- "8041:8041"
|
- 8041:8041 # 端口映射(仅 bridge 模式生效)
|
||||||
environment:
|
|
||||||
- TORNADO_PORT=8041
|
|
||||||
- TORNADO_ENV=production
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./uploads:/data/apps/uploads
|
- ./uploads:/data/apps/uploads # 上传目录持久化
|
||||||
- ./logs:/data/apps/logs
|
env_file:
|
||||||
command: python app.py
|
- .env # 从 .env 注入环境变量
|
||||||
|
command: python app.py # 容器启动命令
|
||||||
logging:
|
logging:
|
||||||
driver: "json-file"
|
driver: "json-file"
|
||||||
options:
|
options:
|
||||||
max-size: "500m"
|
max-size: "500m" # 单个日志文件最大 500MB
|
||||||
max-file: "10"
|
max-file: "10" # 最多保留 10 个日志文件
|
||||||
-303
@@ -1,303 +0,0 @@
|
|||||||
DjangoAdmin_Tornado_EleVue/
|
|
||||||
├── app.py # ★ 应用入口(极简版)
|
|
||||||
├── pyproject.toml # ★ 项目配置(Poetry迁移)
|
|
||||||
├── poetry.lock # ★ 依赖锁定文件
|
|
||||||
├── .env # 环境配置
|
|
||||||
├── .env.example # 环境变量示例
|
|
||||||
├── .gitignore
|
|
||||||
├── .flake8 # 代码规范
|
|
||||||
├── .pre-commit-config.yaml # Git钩子
|
|
||||||
├── .mypy.ini # ★ 新增:类型检查配置
|
|
||||||
├── Makefile # ★ 常用命令(增强版)
|
|
||||||
├── Dockerfile # ★ 多阶段构建(优化版)
|
|
||||||
├── docker-compose.yml # ★ 端口8041(增强版)
|
|
||||||
├── docker-compose.override.yml # ★ 新增:开发覆盖配置
|
|
||||||
├── alembic.ini # 数据库迁移
|
|
||||||
├── LICENSE
|
|
||||||
├── README.md
|
|
||||||
├── README.en.md
|
|
||||||
├── CHANGELOG.md # ★ 新增:版本变更日志
|
|
||||||
├── CONTRIBUTING.md # ★ 新增:贡献指南
|
|
||||||
│
|
|
||||||
├── src/ # ★★★ 主要源代码
|
|
||||||
│ ├── __init__.py
|
|
||||||
│ ├── app.py # ★ 应用工厂函数(增强版)
|
|
||||||
│ ├── bootstrap.py # ★ 新增:启动引导程序
|
|
||||||
│ │
|
|
||||||
│ ├── core/ # ★ 核心基础设施层(增强版)
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── base_handler.py # ★ 增强:添加健康检查、优雅关闭
|
|
||||||
│ │ ├── base_repository.py # ★ 增强:添加软删除、审计
|
|
||||||
│ │ ├── base_service.py # ★ 增强:添加事件发布
|
|
||||||
│ │ ├── base_module.py # ★ 新增:模块CRUD基类(统一通用逻辑)
|
|
||||||
│ │ ├── response.py # ★ 统一响应
|
|
||||||
│ │ ├── exceptions.py # ★ 自定义异常(细化分类)
|
|
||||||
│ │ ├── jwt.py # ★ JWT管理(增强)
|
|
||||||
│ │ ├── database.py # ★ 连接池(添加读写分离)
|
|
||||||
│ │ ├── redis.py # ★ Redis(添加缓存装饰器)
|
|
||||||
│ │ ├── logger.py # ★ 结构化日志
|
|
||||||
│ │ ├── session.py # ★ Session管理
|
|
||||||
│ │ ├── event_bus.py # ★ 新增:事件总线
|
|
||||||
│ │ ├── cache.py # ★ 新增:缓存管理器
|
|
||||||
│ │ ├── metrics.py # ★ 新增:指标收集
|
|
||||||
│ │ └── tracer.py # ★ 新增:链路追踪
|
|
||||||
│ │
|
|
||||||
│ ├── config/ # ★ 配置层(增强版)
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── settings.py # ★ Pydantic配置(细化分类)
|
|
||||||
│ │ ├── constants.py # ★ 常量定义
|
|
||||||
│ │ ├── messages.py # ★ 消息定义
|
|
||||||
│ │ └── logging.py # ★ 新增:日志配置独立
|
|
||||||
│ │
|
|
||||||
│ ├── domain/ # ★★★ 新增:领域层(DDD)
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── entities/ # ★ 实体对象
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── user.py
|
|
||||||
│ │ │ ├── role.py
|
|
||||||
│ │ │ └── menu.py
|
|
||||||
│ │ ├── value_objects/ # ★ 值对象
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── email.py
|
|
||||||
│ │ │ ├── phone.py
|
|
||||||
│ │ │ └── password.py # ★ 密码值对象(bcrypt)
|
|
||||||
│ │ ├── events/ # ★ 领域事件
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── user_events.py
|
|
||||||
│ │ │ └── auth_events.py
|
|
||||||
│ │ └── repositories/ # ★ 仓储接口
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── user_repository.py
|
|
||||||
│ │ └── role_repository.py
|
|
||||||
│ │
|
|
||||||
│ ├── modules/ # ★★★ 业务模块(重构版)
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── auth/ # 认证授权模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 请求处理器(继承BaseHandler)
|
|
||||||
│ │ │ ├── service.py # ★ 业务逻辑(继承BaseService)
|
|
||||||
│ │ │ ├── repository.py # ★ 数据访问(继承BaseRepository)
|
|
||||||
│ │ │ ├── models.py # ★ 数据模型
|
|
||||||
│ │ │ ├── schemas.py # ★ Pydantic模型
|
|
||||||
│ │ │ └── constants.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── user/ # 用户管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py # ★ 使用领域实体
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── role/ # 角色管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── menu/ # 菜单管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── permission/ # ★ 新增:权限管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── dept/ # 部门管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── dict/ # 字典管理模块
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── handlers.py # ★ 使用BaseModuleCRUD
|
|
||||||
│ │ │ ├── service.py
|
|
||||||
│ │ │ ├── repository.py
|
|
||||||
│ │ │ ├── models.py
|
|
||||||
│ │ │ └── schemas.py
|
|
||||||
│ │ │
|
|
||||||
│ │ └── ... # 其他模块(依此类推)
|
|
||||||
│ │
|
|
||||||
│ ├── common/ # ★ 公共模块
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── middleware/ # 中间件
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── authentication.py # ★ 认证(增强)
|
|
||||||
│ │ │ ├── permission.py # ★ 权限(增强)
|
|
||||||
│ │ │ ├── cors.py # CORS
|
|
||||||
│ │ │ ├── rate_limit.py # 限流
|
|
||||||
│ │ │ ├── operation_log.py # 操作日志
|
|
||||||
│ │ │ ├── trace_id.py # ★ 新增:链路追踪ID
|
|
||||||
│ │ │ └── metrics.py # ★ 新增:性能监控
|
|
||||||
│ │ │
|
|
||||||
│ │ ├── utils/ # 工具函数
|
|
||||||
│ │ │ ├── __init__.py
|
|
||||||
│ │ │ ├── captcha.py # 验证码
|
|
||||||
│ │ │ ├── crypto.py # ★ 加密工具(bcrypt)
|
|
||||||
│ │ │ ├── file.py # 文件操作
|
|
||||||
│ │ │ ├── image.py # 图片处理
|
|
||||||
│ │ │ ├── validators.py # 数据验证
|
|
||||||
│ │ │ ├── helpers.py # 辅助函数
|
|
||||||
│ │ │ └── fonts/
|
|
||||||
│ │ │ └── Vera.ttf
|
|
||||||
│ │ │
|
|
||||||
│ │ └── decorators/ # ★ 新增:装饰器
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── cache.py # 缓存装饰器
|
|
||||||
│ │ ├── retry.py # 重试装饰器
|
|
||||||
│ │ ├── timer.py # 性能计时
|
|
||||||
│ │ └── transaction.py # 事务装饰器
|
|
||||||
│ │
|
|
||||||
│ ├── extensions/ # ★ 扩展
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── sqlalchemy.py # ★ SQLAlchemy(增强审计)
|
|
||||||
│ │ ├── redis.py # ★ Redis(增强)
|
|
||||||
│ │ ├── session.py # Session
|
|
||||||
│ │ ├── swagger.py # ★ 新增:Swagger文档
|
|
||||||
│ │ └── sentry.py # ★ 新增:错误监控
|
|
||||||
│ │
|
|
||||||
│ └── api/ # ★ 新增:API版本管理
|
|
||||||
│ ├── __init__.py
|
|
||||||
│ ├── v1/ # API v1版本
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── auth.py
|
|
||||||
│ │ ├── users.py
|
|
||||||
│ │ └── ...
|
|
||||||
│ └── v2/ # API v2版本(预留)
|
|
||||||
│ └── __init__.py
|
|
||||||
│
|
|
||||||
├── tests/ # ★★★ 测试(大幅增强)
|
|
||||||
│ ├── __init__.py
|
|
||||||
│ ├── conftest.py # ★ pytest配置(增强)
|
|
||||||
│ ├── unit/ # 单元测试
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── core/
|
|
||||||
│ │ │ ├── test_cache.py
|
|
||||||
│ │ │ ├── test_jwt.py
|
|
||||||
│ │ │ ├── test_base_module.py # ★ 新增:测试BaseModuleCRUD
|
|
||||||
│ │ │ └── ...
|
|
||||||
│ │ ├── domain/ # ★ 领域层测试
|
|
||||||
│ │ │ ├── test_user_entity.py
|
|
||||||
│ │ │ └── test_password_value.py
|
|
||||||
│ │ └── modules/
|
|
||||||
│ │ ├── test_auth.py
|
|
||||||
│ │ ├── test_user.py
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── integration/ # 集成测试
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── test_api.py
|
|
||||||
│ │ ├── test_database.py
|
|
||||||
│ │ └── test_redis.py
|
|
||||||
│ ├── e2e/ # ★ 新增:端到端测试
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── test_user_flow.py
|
|
||||||
│ │ └── test_auth_flow.py
|
|
||||||
│ ├── performance/ # ★ 新增:性能测试
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── test_load.py
|
|
||||||
│ │ └── test_stress.py
|
|
||||||
│ ├── fixtures/ # 测试数据
|
|
||||||
│ │ ├── __init__.py
|
|
||||||
│ │ ├── users.json
|
|
||||||
│ │ ├── data.sql
|
|
||||||
│ │ └── factories.py # ★ 新增:工厂模式
|
|
||||||
│ └── reports/ # ★ 新增:测试报告
|
|
||||||
│ └── .keep
|
|
||||||
│
|
|
||||||
├── scripts/ # ★★★ 运维脚本(增强版)
|
|
||||||
│ ├── __init__.py
|
|
||||||
│ ├── init_db.py # 数据库初始化
|
|
||||||
│ ├── seed.py # 测试数据填充
|
|
||||||
│ ├── migrate.py # 数据库迁移
|
|
||||||
│ ├── deploy.py # 部署脚本
|
|
||||||
│ ├── health_check.py # ★ 新增:健康检查脚本
|
|
||||||
│ ├── backup.py # ★ 新增:数据库备份
|
|
||||||
│ └── monitor.py # ★ 新增:监控脚本
|
|
||||||
│
|
|
||||||
├── alembic/ # 数据库迁移
|
|
||||||
│ ├── env.py # ★ 自动检测模型(增强)
|
|
||||||
│ ├── script.py.mako
|
|
||||||
│ └── versions/
|
|
||||||
│ └── .keep
|
|
||||||
│
|
|
||||||
├── logs/ # 日志目录
|
|
||||||
│ ├── .keep
|
|
||||||
│ ├── app.log
|
|
||||||
│ ├── error.log
|
|
||||||
│ └── access.log
|
|
||||||
│
|
|
||||||
├── uploads/ # 上传文件
|
|
||||||
│ ├── demo/
|
|
||||||
│ ├── images/
|
|
||||||
│ │ ├── user/
|
|
||||||
│ │ ├── article/
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── temp/
|
|
||||||
│ └── level.xlsx
|
|
||||||
│
|
|
||||||
├── static/ # 静态文件
|
|
||||||
├── templates/ # 模板文件
|
|
||||||
│ └── errors/ # ★ 新增:错误页面
|
|
||||||
│ ├── 404.html
|
|
||||||
│ └── 500.html
|
|
||||||
│
|
|
||||||
├── document/ # 文档
|
|
||||||
│ ├── sql/ # ★ 数据库脚本
|
|
||||||
│ │ ├── init.sql
|
|
||||||
│ │ └── data.sql
|
|
||||||
│ ├── adr/ # ★ 新增:架构决策记录
|
|
||||||
│ │ ├── 001-use-poetry.md
|
|
||||||
│ │ ├── 002-event-driven.md
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── api/ # ★ 新增:API文档
|
|
||||||
│ │ └── swagger.yaml
|
|
||||||
│ ├── djangoadmin.tornado.elevue.sql
|
|
||||||
│ ├── 开发笔记.txt
|
|
||||||
│ └── 版本更新说明.txt
|
|
||||||
│
|
|
||||||
├── deploy/ # ★★★ 部署配置(增强版)
|
|
||||||
│ ├── nginx/
|
|
||||||
│ │ ├── nginx.conf
|
|
||||||
│ │ └── ssl/ # ★ 新增:SSL证书目录
|
|
||||||
│ │ ├── cert.pem
|
|
||||||
│ │ └── key.pem
|
|
||||||
│ ├── supervisor/
|
|
||||||
│ │ └── supervisor.conf
|
|
||||||
│ ├── prometheus/ # ★ 新增:监控配置
|
|
||||||
│ │ └── prometheus.yml
|
|
||||||
│ ├── grafana/ # ★ 新增:可视化配置
|
|
||||||
│ │ └── dashboards/
|
|
||||||
│ │ └── app.json
|
|
||||||
│ ├── elk/ # ★ 新增:日志收集
|
|
||||||
│ │ ├── elasticsearch.yml
|
|
||||||
│ │ └── logstash.conf
|
|
||||||
│ └── kubernetes/ # ★ 新增:K8s部署(可选)
|
|
||||||
│ ├── deployment.yaml
|
|
||||||
│ ├── service.yaml
|
|
||||||
│ └── ingress.yaml
|
|
||||||
│
|
|
||||||
└── .github/ # ★ 新增:GitHub CI/CD
|
|
||||||
├── workflows/
|
|
||||||
│ ├── ci.yml # ★ CI流水线
|
|
||||||
│ ├── cd.yml # ★ CD流水线
|
|
||||||
│ └── security-scan.yml # ★ 安全扫描
|
|
||||||
└── ISSUE_TEMPLATE/
|
|
||||||
├── bug_report.md
|
|
||||||
└── feature_request.md
|
|
||||||
|
|
||||||
重置为纯净结构,可 python scripts/init_db.py(按模型建空表)再 python scripts/seed.py(创建 admin)
|
|
||||||
Reference in New Issue
Block a user