跳到主要内容
Skip to content
logo

FastApiAdmin v3.0.0

一套现代、开源、全栈融合的中后台快速开发平台

如果你喜欢这个项目,给个 ⭐️ 支持一下吧!

Gitee StarsGitHub StarsLicensePythonNodeJSMySQLRedis

📘项目介绍

FastApiAdmin 是一套 完全开源、高度模块化、技术先进的现代化快速开发平台,旨在帮助开发者高效搭建高质量的企业级中后台系统。该项目采用 前后端分离架构,融合 Python 后端框架 FastAPI 和前端主流框架 Vue3 实现多端统一开发,提供了一站式开箱即用的开发体验。

设计初心: 以模块化、松耦合为核心,追求丰富的功能模块、简洁易用的接口、详尽的开发文档和便捷的维护方式。通过统一框架和组件,降低技术选型成本,遵循开发规范和设计模式,构建强大的代码分层模型,搭配完善的本地中文化支持,专为团队和企业开发场景量身定制。

📦 工程结构概览

项目采用 Monorepo 架构,所有子工程在同一仓库中协同开发:

sh
FastapiAdmin/
├─ backend/               # 后端工程 (FastAPI + Python)
├─ frontend/              # 前端工程
   ├── web/              # Web 前端 (Vue3 + Element Plus)
   ├── app/              # 移动端 (UniApp)
   └── docs/             # 文档网站 (VitePress)
├─ docker/                # Docker 部署配置
   ├── backend/          # 后端 Dockerfile
   ├── nginx/            # Nginx 配置和静态文件
   ├── mysql/            # MySQL 数据目录
   └── redis/            # Redis 数据目录
├─ deploy.sh              # 一键部署脚本
├─ deploy.bat             # Windows 启动脚本
├─ LICENSE                # 开源协议
└─ README.md              # 项目文档

三个前端子工程均在 frontend/ 目录下,分别是 web(Web 前端)、app(移动端)、docs(文档网站)。详细目录结构见 前端开发后端开发移动端开发部署指南

✨核心亮点

特性描述
🔭 快速开发一套完全开源的现代化快速开发平台,旨在帮助开发者高效搭建高质量的企业级中后台系统。
🌐 全栈整合前后端分离,融合 Python (FastAPI) + Vue3 多端开发,支持 Web 端和移动端。
🧱 模块化设计系统功能高度解耦,插件化架构,支持自动路由发现和注册,便于扩展和维护。
⚡️ 高性能异步使用 FastAPI 异步框架 + Redis 缓存优化接口响应速度。
🔒 安全认证支持 JWT OAuth2 认证机制,保障系统安全。
📊 权限管理RBAC 模型实现菜单、按钮、数据级别的细粒度权限控制。
🚀 快速部署支持 Docker/Docker Compose/Nginx 一键部署。
📄 开发友好提供完善的中文文档 + 中文化界面 + 可视化工具链,降低学习成本。
🧩 快速接入基于 Vue3、Vite5、Pinia、ElementPlus 等主流前端技术栈,开箱即用。
📱 移动端支持基于 UniApp 开发的 FastApp 移动端,支持多端运行(H5、微信小程序、支付宝小程序、App 等)。
🤖 智能体框架集成智能体框架,提供 AI 能力。
🎨 主题定制支持深色/浅色主题切换,提供个性化界面体验。
🌍 国际化支持内置国际化框架,支持多语言切换。
📈 数据可视化集成图表库,提供丰富的数据可视化能力。
🛠️ 代码生成内置代码生成工具,提升开发效率。

🛠️技术栈概览

类型技术选型描述
后端框架FastAPI / Uvicorn / Pydantic 2.0 / Alembic现代、高性能的异步框架,强制类型约束,数据迁移。
ORMSQLAlchemy 2.0强大的 ORM 库。
定时任务APScheduler轻松实现定时任务。
权限认证PyJWT实现 JWT 认证。
前端框架Vue3 / Vite5 / Pinia / TypeScript快速开发 Vue3 应用。
前端工具ESLint / Prettier / Stylelint代码质量和风格工具。
移动端框架UniApp / Vue3 / TypeScript跨平台移动应用开发。
UI 库ElementPlus (Web) / Wot Design Uni (移动端)企业级 UI 组件库。
CSS 框架UnoCSS / SCSS原子化 CSS 和预处理器。
数据库MySQL / PostgreSQL / SQLite关系型数据库支持。
缓存Redis强大的缓存数据库。
文档Swagger / Redoc自动生成 API 文档。
部署Docker / Nginx / Docker Compose快速部署项目。
监控内置服务器监控 / 缓存监控系统运行状态监控。
国际化i18n多语言支持。
数据可视化ECharts图表库。

📌内置模块

模块名子模块名描述
仪表盘工作台、分析页系统概览和数据分析
系统管理用户、角色、菜单、部门、岗位、字典、配置、公告核心系统管理功能
监控管理在线用户、服务器监控、缓存监控系统运行状态监控
任务管理定时任务异步任务调度管理
日志管理操作日志用户行为审计
开发工具代码生成、表单构建、接口文档提升开发效率的工具
文件管理文件存储统一文件管理

移动端模块详见 移动端开发

📐 分包理念:按业务域 vs 按技术层

讨论的是源码目录如何划分(文件夹怎么分包),与是否做 MVC / Controller–Service–CRUD 逻辑分层是不同的概念。

方式组织方式典型目录(示例)
按技术层次分包同一类技术文件归在一起顶层 models/schemas/services/controllers/
按业务特性分包同一业务域的文件归在一起app/api/v1/module_*/ 下并列 controller.pyservice.pycrud.pymodel.pyschema.py

本项目(后端)采用:按业务特性分包(竖切)。

设计考量

  • 解耦的单位是业务边界:以系统管理、监控等为模块,子域内再分文件。多人协作时各自目录独立,减少冲突。
  • 面向未来的拆分:若要将某一模块独立成子工程,一整个目录搬走即可。按层分包则需要跨多个顶层目录抽取。
  • 分层仍在:Controller → Service → CRUD → Model 的逻辑分层没有消失,只是叠在业务包内部,而不是拿「全项目唯一的分层目录」作为第一维划分。