@@ -13,77 +13,79 @@ mvc 架构作为常规设计模式,在 python web 中很常见,但是三层
1313如果您不喜欢这种模式,可以使用模板对其进行任意改造!
1414
1515| 工作流程 | java | fastapi_best_architecture |
16- | ------| -- --------------| --------------------------- |
17- | 视图 | controller | api |
16+ | -------- | -------------- | ------------------------- |
17+ | 视图 | controller | api |
1818| 数据传输 | dto | schema |
1919| 业务逻辑 | service + impl | service |
2020| 数据访问 | dao / mapper | crud |
21- | 模型 | model / entity | model |
21+ | 模型 | model / entity | model |
2222
23- ## 特征
23+ ## 特性
2424
2525- [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 单元测试
3737
3838## 内置功能
3939
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] 服务监控:查看服务器硬件信息和状态
5557- [x] 接口文档:自动生成在线交互式 API 文档
5658
5759## 项目结构
5860
5961::: file-tree
6062
6163- 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 必须在此文件内导入所有模型类
7571 - …
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/ 工具包
8789- deploy/ 服务器部署
8890- …
8991
0 commit comments