mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 13:12:24 +00:00
5.2 KiB
5.2 KiB
FastAPI Best Architecture
简体中文 | English
基于 FastAPI 框架的前后端分离中后台解决方案,遵循伪三层架构设计, 支持 python3.10 及以上版本
🔥持续更新维护中🔥
Note
此仓库作为模板库公开,任何人或企业均可免费使用!
伪三层架构
mvc 架构作为常规设计模式,在 python web 中也很常见,但是三层架构更令人着迷
在 python web 开发中,三层架构的概念并没有通用标准,所以这里我们称之为伪三层架构
但请注意,我们并没有传统的多应用程序结构(django、springBoot...),如果您不喜欢这种模式,可以使用模板对其进行随意改造!
| 工作流程 | java | fastapi_best_architecture |
|---|---|---|
| 视图 | controller | api |
| 数据传输 | dto | schema |
| 业务逻辑 | service + impl | service |
| 数据访问 | dao / mapper | crud |
| 模型 | model / entity | model |
特征
- 全局 FastAPI PEP 593 Annotated 参数风格
- async/await + asgiref 的全局异步设计
- 遵循 Restful API 规范
- 全局 SQLAlchemy 2.0 语法
- Pydantic v1 和 v2 (不同分支)
- Casbin RBAC 访问控制模型
- 角色菜单 RBAC 访问控制模型
- Celery 异步任务
- JWT 中间件白名单认证
- 全局自定义时区时间
- Docker / Docker-compose 部署
- Pytest 单元测试
内置功能
- 用户管理:系统用户角色管理,权限分配
- 部门管理:配置系统组织机构(公司、部门、小组...)
- 菜单管理:配置系统菜单,用户菜单,按钮权限标识
- 角色管理:角色菜单权限分配,角色路由权限分配
- 字典管理:维护系统内部常用固定数据或参数
- 令牌管理:系统用户在线状态检测,支持踢人下线
- 登录认证:基于后端的图形验证码后台认证登录
- 多点登录:通过用户信息一键修改多点登录支持
- OAuth20:内置自研 OAuth 2.0 登录集成
- 代码生成:后端代码自动生成,支持预览,写入及下载
- 定时任务:自动化任务,异步任务,支持函数调用
- 插件系统:通过热插拔插件模式告别高耦合集成
- 操作日志:系统正常和异常操作的日志记录与查询
- 登录日志:用户正常和异常登录的日志记录与查询
- 服务监控:服务器硬件设备信息与状态
- 接口文档:自动生成在线交互式 API 文档
开发部署
更多详情请查看 官方文档
贡献者
特别鸣谢
互动
赞助我们
如果此项目能够帮助到你,你可以赞助作者一些咖啡豆表示鼓励:☕ Sponsor ☕
许可证
本项目由 MIT 许可证的条款进行许可