FastApiAdmin 是一套 完全开源、高度模块化、技术先进的现代化快速开发平台,旨在帮助开发者高效搭建高质量的企业级中后台系统。该项目采用 前后端分离架构,融合 Python 后端框架 FastAPI 和前端主流框架 Vue3 实现多端统一开发,提供了一站式开箱即用的开发体验。
设计初心: 以模块化、松耦合为核心,追求丰富的功能模块、简洁易用的接口、详尽的开发文档和便捷的维护方式。通过统一框架和组件,降低技术选型成本,遵循开发规范和设计模式,构建强大的代码分层模型,搭配完善的本地中文化支持,专为团队和企业开发场景量身定制。
| 平台 | 仓库地址 |
|---|---|
| GitHub | FastapiAdmin主工程 | FastDocs官网 | FastApp移动端 |
| Gitee | FastapiAdmin主工程 | FastDocs官网 | FastApp移动端 |
| 优势 | 描述 |
|---|---|
| 🔥 现代化技术栈 | 基于 FastAPI + Vue3 + TypeScript 等前沿技术构建 |
| ⚡ 高性能异步 | 利用 FastAPI 异步特性和 Redis 缓存优化响应速度 |
| 🔐 安全可靠 | JWT + OAuth2 认证机制,RBAC 权限控制模型 |
| 🧱 模块化设计 | 高度解耦的系统架构,便于扩展和维护 |
| 🌐 全栈支持 | Web端 + 移动端(H5) + 后端一体化解决方案 |
| 🚀 快速部署 | Docker 一键部署,支持生产环境快速上线 |
| 📖 完善文档 | 详细的开发文档和教程,降低学习成本 |
FastapiAdmin ├─ backend # 后端工程 (FastAPI + Python) ├─ frontend # Web前端工程 (Vue3 + Element Plus) ├─ fastapp # 移动端工程 (UniApp + Wot Design Uni) ├─ fastdocs # 官网文档工程 (VitePress) ├─ devops # 部署配置 ├─ docker-compose.yaml # Docker编排文件 ├─ deploy.sh # 一键部署脚本 ├─ LICENSE # 开源协议 |─ README.en.md # 英文文档 └─ README.md # 中文文档
| 类型 | 技术选型 | 描述 |
|---|---|---|
| 后端框架 | FastAPI / Uvicorn / Pydantic 2.0 / Alembic | 现代、高性能的异步框架,强制类型约束,数据迁移 |
| ORM | SQLAlchemy 2.0 | 强大的 ORM 库 |
| 定时任务 | APScheduler | 轻松实现定时任务 |
| 权限认证 | PyJWT | 实现 JWT 认证 |
| 前端框架 | Vue3 / Vite5 / Pinia / TypeScript | 快速开发 Vue3 应用 |
| Web UI | ElementPlus | 企业级 UI 组件库 |
| 移动端 | UniApp / Wot Design Uni | 跨端移动应用框架 |
| 数据库 | MySQL / MongoDB | 关系型和文档型数据库支持 |
| 缓存 | Redis | 高性能缓存数据库 |
| 文档 | Swagger / Redoc | 自动生成 API 文档 |
| 部署 | Docker / Nginx / Docker Compose | 容器化部署方案 |
| 模块 | 功能 | 描述 |
|---|---|---|
| 📊 仪表盘 | 工作台、分析页 | 系统概览和数据分析 |
| ⚙️ 系统管理 | 用户、角色、菜单、部门、岗位、字典、配置、公告 | 核心系统管理功能 |
| 👀 监控管理 | 在线用户、服务器监控、缓存监控 | 系统运行状态监控 |
| 📋 任务管理 | 定时任务 | 异步任务调度管理 |
| 📝 日志管理 | 操作日志 | 用户行为审计 |
| 🧰 开发工具 | 代码生成、表单构建、接口文档 | 提升开发效率的工具 |
| 📁 文件管理 | 文件存储 | 统一文件管理 |
- 🌐 官网地址:https://service.fastapiadmin.com
- 💻 Web演示:https://service.fastapiadmin.com/web
- 📱 移动端:https://service.fastapiadmin.com/app
- 👤 登录账号:
admin密码:123456
| 类型 | 技术栈 | 版本 |
|---|---|---|
| 后端 | Python | ≥ 3.10 |
| 后端 | FastAPI | 0.109+ |
| 前端 | Node.js | ≥ 20.0 |
| 前端 | Vue3 | 3.3+ |
| 数据库 | MySQL | 8.0+ |
| 缓存 | Redis | 7.0+ |
# 克隆代码到本地 git clone https://gitee.com/tao__tao/FastapiAdmin.git # 或者 git clone https://github.com/1014TaoTao/FastapiAdmin.git
# 进入后端工程目录 cd backend # 安装依赖 pip3 install -r requirements.txt # 启动后端服务 python3 main.py run # 或指定环境 python3 main.py run --env=dev # 数据库迁移(首次运行) # 生成迁移文件 python3 main.py revision "初始化迁移" --env=dev # 应用迁移 python3 main.py upgrade --env=dev
# 进入前端工程目录 cd frontend # 安装依赖 pnpm install # 启动开发服务器 pnpm run dev # 构建生产版本 pnpm run build
# 进入移动端工程目录 cd fastapp # 安装依赖 pnpm install # 启动H5开发服务器 pnpm run dev:h5 # 构建H5生产版本 pnpm run build:h5
# 进入文档工程目录 cd fastdocs # 安装依赖 pnpm install # 启动文档开发服务器 pnpm run docs:dev # 构建文档生产版本 pnpm run docs:build
- 🏠 项目官网:http://localhost:5180
- 🖥️ Web端:http://localhost:5180/web
- 📱 移动端:http://localhost:5180/app
默认账号:
- 管理员:
admin/123456
# 复制部署脚本到服务器并赋予执行权限 chmod +x deploy.sh # 执行一键部署 ./deploy.sh # 常用 Docker 命令 # 查看运行中的容器 docker compose ps # 查看容器日志 docker logs -f <容器名> # 停止服务 docker compose down
| 模块名 | 截图 |
|---|---|
| 登录 | 登录 |
| 仪表盘 | 仪表盘 |
| 分析页 | 分析页 |
| 菜单管理 | 菜单管理 |
| 部门管理 | 部门管理 |
| 岗位管理 | 岗位管理 |
| 角色管理 | 角色管理 |
| 用户管理 | 用户管理 |
| 日志管理 | 日志管理 |
| 配置管理 | 配置管理 |
| 在线用户 | 在线用户 |
| 服务器监控 | 服务器监控 |
| 缓存监控 | 缓存监控 |
| 任务管理 | 任务管理 |
| 字典管理 | 字典管理 |
| 接口管理 | 接口管理 |
| 系统主题 | 系统主题 |
| 在线文档 | 在线文档 |
| 系统锁屏 | 系统锁屏 |
| 表单构建 | 表单构建 |
| 代码生成 | 代码生成 |
| 流程管理 | 流程管理 |
| 文件管理 | 文件管理 |
| 我的应用 | 我的应用 |
| 配置中心 | 配置中心 |
| 智能助手 | 智能助手 |
| 模块 | 详情 | 模块 | 详情 | 模块 | 详情 |
|---|---|---|---|---|---|
| 登录 | 移动端登录 | 首页 | 移动端首页 | 我的 | 移动端个人中心 |
| 个人 | 移动端个人信息 | 设置 | 移动端设置 | 工作台 | 移动端工作台 |
- 编写实体类层:在
backend/app/api/v1/module_generator/demo/model.py中创建 example 的 ORM 模型(对应 Spring Boot 中的实体类层) - 编写数据模型层:在
backend/app/api/v1/module_generator/demo/schema.py中创建 example 数据模型(对应 Spring Boot 中的 DTO 层) - 编写查询参数模型层:在
backend/app/api/v1/module_generator/demo/param.py中创建 example 的查询参数模型(对应 Spring Boot 中的 DTO 层) - 编写持久化层:在
backend/app/api/v1/cruds/module_generator/crud.py中创建 example 数据层(对应 Spring Boot 中的 Mapper 或 DAO 层) - 编写业务层:在
backend/app/api/v1/services/module_generator/service.py中创建 example 数据层(对应 Spring Boot 中的 Service 层) - 编写接口层:在
backend/app/api/v1/controllers/module_generator/controller.py中创建 example 数据层(对应 Spring Boot 中的 Controller 层) - 将 demo 模块添加至系统初始化脚本:在
backend/app/scripts/initialize.py中添加(如果需要可以把 demo 的菜单权限,配置到backend/app/scripts/data/system_menu.json和backend/app/scripts/data/system_role_menus.json或从前端页面菜单中新增) - 将 demo 模块添加至数据库迁移脚本中:在
backend/app/alembic/env.py中添加
代码生成模块是本项目的核心功能之一,可以帮助开发者快速生成完整的 CRUD 代码,大幅提升开发效率。该模块基于 Jinja2 模板引擎,可生成前后端一体化的完整功能模块。
-
创建或导入数据表:
- 方式一:通过"创建表"功能直接在系统中创建新表
- 方式二:通过"导入"功能将现有数据库表导入到代码生成器中
-
配置生成参数:
- 基础配置:
- 表名称、表描述、实体类名称
- 生成配置:
- 生成包路径(package_name):如
student - 生成模块名(module_name):如
student - 生成业务名(business_name):如
student - 生成功能名(function_name):如
学生管理 - 生成代码方式:zip压缩包下载 或 项目目录写入
- 上级菜单:选择生成功能所属的菜单分类
- 生成包路径(package_name):如
- 基础配置:
-
字段配置:
- 配置每个字段的:
- 字段列类型、Python类型、Python字段名
- 是否为主键、是否自增、是否必填
- 是否为插入字段、编辑字段、列表字段、查询字段
- 查询方式(等于、不等于、大于、小于、范围)
- 显示类型(文本框、文本域、下选框、复选框、单选框、日期控件)
- 字典类型(用于下拉框数据源)
- 配置每个字段的:
-
代码预览:
- 预览将要生成的代码内容
- 支持预览后端(Python)、前端(Vue/TS)、数据库(SQL)代码
- 可按类型筛选预览内容
-
生成代码:
- 点击"下载代码"生成并下载zip压缩包
- 点击"写入本地"直接写入到项目目录中
代码生成器会生成完整的前后端代码结构:
后端文件:
- 控制器层:
backend/app/api/v1/module_{module_name}/{business_name}/controller.py - 服务层:
backend/app/api/v1/module_{module_name}/{business_name}/service.py - 数据访问层:
backend/app/api/v1/module_{module_name}/{business_name}/crud.py - 数据模型层:
backend/app/api/v1/module_{module_name}/{business_name}/model.py - 数据模式层:
backend/app/api/v1/module_{module_name}/{business_name}/schema.py - 查询参数层:
backend/app/api/v1/module_{module_name}/{business_name}/param.py
前端文件:
- API接口文件:
frontend/src/api/module_{module_name}/{business_name}.ts - 页面组件文件:
frontend/src/views/module_{module_name}/{business_name}/index.vue
数据库文件:
- 菜单SQL文件:
backend/sql/module_{module_name}/{business_name}_menu.sql
- 在数据库中创建新表,如
sys_student - 登录系统,进入代码生成模块
- 点击"导入",选择
sys_student表 - 配置生成参数:
- 生成包路径:
student - 生成模块名:
student - 生成业务名:
student - 生成功能名:
学生管理 - 上级菜单:系统管理
- 生成包路径:
- 配置字段属性(如设置哪些字段需要显示、查询、编辑等)
- 点击"预览代码"查看生成的代码
- 点击"下载代码"或"写入本地"生成完整功能模块
- 重启服务,新功能模块即可使用
- 前端接入后端接口地址:在
frontend/src/api/demo/example.ts中配置 - 编写前端页面:在
frontend/src/views/demo/example/index.vue中编写
- 移动端接入后端接口地址:在
fastapp/src/api中编写 - 编写移动端页面:在
fastapp/src/pages中编写
更多详情请查看 官方文档
感谢以下开源项目的贡献和支持:
| 微信二维码 | 群组二维码 | 微信支付二维码 |
|---|---|---|
| 微信二维码 | 群组二维码 | 微信支付二维码 |
如果你喜欢这个项目,请给我一个 ⭐️ Star 支持一下吧!非常感谢!