@@ -13,77 +13,79 @@ mvc 架构作为常规设计模式,在 python web 中很常见,但是三层
13
13
如果您不喜欢这种模式,可以使用模板对其进行任意改造!
14
14
15
15
| 工作流程 | java | fastapi_best_architecture |
16
- | ------| -- --------------| --------------------------- |
17
- | 视图 | controller | api |
16
+ | -------- | -------------- | ------------------------- |
17
+ | 视图 | controller | api |
18
18
| 数据传输 | dto | schema |
19
19
| 业务逻辑 | service + impl | service |
20
20
| 数据访问 | dao / mapper | crud |
21
- | 模型 | model / entity | model |
21
+ | 模型 | model / entity | model |
22
22
23
- ## 特征
23
+ ## 特性
24
24
25
25
- [x] 全局 FastAPI PEP 593 Annotated 参数风格
26
- - [x] async/await + asgiref 的全局异步设计
27
- - [x] 遵循 Restful API 规范
28
- - [x] 全局 SQLAlchemy 2.0 语法
29
- - [x] Pydantic v1 和 v2 (不同分支)
30
- - [x] Casbin RBAC 访问控制模型
31
- - [x] 角色菜单 RBAC 访问控制模型
32
- - [x] Celery 异步任务
33
- - [x] JWT 中间件白名单认证
34
- - [x] 全局自定义时区时间
35
- - [x] Docker / Docker-compose 部署
36
- - [x] Pytest 单元测试
26
+ - [x] 全面 async/await + asgiref 异步设计
27
+ - [x] 遵循 RESTful API 规范
28
+ - [x] 使用 SQLAlchemy 2.0 全新语法
29
+ - [x] 使用 Pydantic v2 版本
30
+ - [x] 实现角色菜单 RBAC 访问控制
31
+ - [x] 集成 Casbin RBAC 访问控制
32
+ - [x] 支持 Celery 异步任务
33
+ - [x] 自研 JWT 认证中间件
34
+ - [x] 支持全局自定义时间时区
35
+ - [x] 支持 Docker / Docker-compose 部署
36
+ - [x] 集成 Pytest 单元测试
37
37
38
38
## 内置功能
39
39
40
- - [x] 用户管理:系统用户角色管理,权限分配
41
- - [x] 部门管理:配置系统组织机构(公司、部门、小组...)
42
- - [x] 菜单管理:配置系统菜单,用户菜单,按钮权限标识
43
- - [x] 角色管理:角色菜单权限分配,角色路由权限分配
44
- - [x] 字典管理:维护系统内部常用固定数据或参数
45
- - [x] 令牌管理:系统用户在线状态检测,支持踢人下线
46
- - [x] 登录认证:基于后端的图形验证码后台认证登录
47
- - [x] 多点登录:通过用户信息一键修改多点登录支持
48
- - [x] OAuth20:内置自研 OAuth 2.0 登录集成
49
- - [x] 代码生成:后端代码自动生成,支持预览,写入及下载
50
- - [x] 定时任务:自动化任务,异步任务,支持函数调用
51
- - [x] 插件系统:通过热插拔插件模式告别高耦合集成
52
- - [x] 操作日志:系统正常和异常操作的日志记录与查询
53
- - [x] 登录日志:用户正常和异常登录的日志记录与查询
54
- - [x] 服务监控:服务器硬件设备信息与状态
40
+ - [x] 用户管理:分配角色和权限
41
+ - [x] 部门管理:配置组织架构(公司、部门、小组等)
42
+ - [x] 菜单管理:设置菜单及按钮级权限
43
+ - [x] 角色管理:配置角色、分配菜单和权限
44
+ - [x] 字典管理:维护常用参数和配置
45
+ - [x] 参数管理:系统常用参数动态配置
46
+ - [x] 通知公告:发布和维护系统通知公告信息
47
+ - [x] 令牌管理:检测在线状态,支持强制下线
48
+ - [x] 多端登录:支持一键切换多端登录模式
49
+ - [x] OAuth 2.0:内置自研 OAuth 2.0 授权登录
50
+ - [x] 插件系统:热插拔插件设计,降低耦合
51
+ - [x] 定时任务:支持定时,异步任务及函数调用
52
+ - [x] 代码生成:自动生成代码,支持预览、写入和下载
53
+ - [x] 操作日志:记录和查询正常和异常操作
54
+ - [x] 登录日志:记录和查询正常和异常登录
55
+ - [x] 缓存监控:查询系统缓存信息和命令统计
56
+ - [x] 服务监控:查看服务器硬件信息和状态
55
57
- [x] 接口文档:自动生成在线交互式 API 文档
56
58
57
59
## 项目结构
58
60
59
61
::: file-tree
60
62
61
63
- backend 后端
62
- - alembic/ 数据库迁移
63
- - app 应用
64
- - admin/ 系统后台
65
- - api/ 接口
66
- - crud/ CRUD
67
- - model 模型
68
- - \_\_ init__ .py 必须在此文件内导入所有模型类
69
- - …
70
- - schema/ 数据传输
71
- - service/ 服务
72
- - tests/ 单元测试
73
- - generator/ 代码生成
74
- - task/ 任务
64
+ - alembic/ 数据库迁移
65
+ - app 应用
66
+ - admin/ 系统后台
67
+ - api/ 接口
68
+ - crud/ CRUD
69
+ - model 模型
70
+ - \_\_ init\_\_ .py 必须在此文件内导入所有模型类
75
71
- …
76
- - common/ 公共资源
77
- - core/ 核心配置
78
- - database/ 数据库连接
79
- - log/ 日志
80
- - middleware/ 中间件
81
- - plugin/ 插件
82
- - scripts/ 脚本
83
- - sql/ SQL文件
84
- - static/ 静态文件
85
- - templates/ 模版文件
86
- - utils/ 工具包
72
+ - schema/ 数据传输
73
+ - service/ 服务
74
+ - tests/ 单元测试
75
+ - generator/ 代码生成
76
+ - task/ 任务
77
+ - …
78
+ - common/ 公共资源
79
+ - core/ 核心配置
80
+ - database/ 数据库连接
81
+ - log/ 日志
82
+ - middleware/ 中间件
83
+ - plugin/ 插件
84
+ - scripts/ 脚本
85
+ - sql/ SQL 文件
86
+ - static/ 静态文件
87
+ - templates/ 模版文件
88
+ - utils/ 工具包
87
89
- deploy/ 服务器部署
88
90
- …
89
91
0 commit comments