# fastapiadmin
**Repository Path**: jeromexiong/fastapiadmin
## Basic Information
- **Project Name**: fastapiadmin
- **Description**: FastapiAdmin — 完全开源免费的全端快速开发平台,后端 FastAPI + SQLAlchemy,Web 端 Vue3 + TS + Element-Plus,小程序基于 unibest,移动端 Flutter 3.44,一套基座快速搭建覆盖后台、小程序、App 的高质量系统。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-07-14
- **Last Updated**: 2026-07-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
## 📘 项目介绍
**FastApiAdmin v3.0** 是一套**完全开源、高度模块化、三端统一**的现代化全栈开发平台模板。基于 FastAPI 后端 + Vue3 管理后台 + UniApp 小程序 + Flutter 移动端,提供从需求到上线的完整技术栈方案。
> **设计初心**:以模块化、松耦合为核心,追求丰富的功能模块、简洁易用的接口、详尽的开发文档和便捷的维护方式。通过统一框架和组件,降低技术选型成本,遵循开发规范和设计模式,构建强大的代码分层模型。
---
## 📸 界面预览
| Web 管理后台 | UniApp 移动端 | Flutter 移动端 |
| :-------------------------------------------------: | :----------------------------------------------: | :------------------------------------------------: |
|  |  |  |
---
## 🎯 核心优势
| 优势 | 描述 |
| ----------------- | ------------------------------------------------------- |
| 🔥 **三端统一** | 一套后端,覆盖 Web 管理后台、微信小程序、Flutter 移动端 |
| ⚡ **高性能异步** | FastAPI 异步特性 + Redis 缓存,接口响应速度极快 |
| 🔐 **安全可靠** | JWT + OAuth2 认证,RBAC 权限控制,数据权限隔离 |
| 🧱 **模块化设计** | 后端按业务竖切分包,前端动态路由注册,高度解耦 |
| 🚀 **快速开发** | 内置代码生成器,根据数据库表一键生成前后端 CRUD 代码 |
| 🐳 **一键部署** | Docker Compose 编排,Nginx 反向代理,开箱即用 |
| 🤖 **AI 就绪** | 内置 Agno 智能体框架,支持 AI 功能扩展 |
---
## 📦 工程结构
```
fastapiadmin/
├── backend/ → 后端(FastAPI + SQLAlchemy + MySQL/PostgreSQL/SQLite)
│ ├── app/
│ │ ├── api/v1/ → API 路由(按业务模块竖切)
│ │ ├── core/ → 核心基础设施(DB/Auth/CRUD/日志/限流)
│ │ ├── common/ → 公共组件(响应封装/枚举/常量)
│ │ ├── config/ → 配置(路径/环境变量)
│ │ ├── utils/ → 工具类(加密/Excel/验证/上传)
│ │ ├── scripts/ → 启动脚本与数据初始化
│ │ ├── alembic/ → 数据库迁移
│ │ └── plugin/ → 插件模块(示例/代码生成器)
│ ├── main.py → 启动入口(typer CLI)
│ └── pyproject.toml → 依赖管理(uv)
├── frontend/
│ ├── web/ → 管理后台(Vue 3 + Element Plus + TypeScript + Vite)
│ │ ├── src/views/ → 页面(系统管理/监控/代码生成等)
│ │ ├── src/router/ → 静态路由 + 动态路由(权限驱动)
│ │ ├── src/store/ → Pinia 状态管理
│ │ └── src/api/ → API 封装
│ ├── uniapp/ → 小程序(UniApp + Wot UI + UnoCSS + Pinia)
│ │ ├── src/pages/ → 页面(首页/登录/个人中心/关于)
│ │ ├── src/http/ → HTTP 请求基础设施
│ │ ├── src/router/ → 路由拦截与权限
│ │ └── src/tabbar/ → 自定义底部导航
│ └── flutter/ → 移动端(Flutter 3.44 + Riverpod + GoRouter + TDesign)
│ ├── lib/common/ → 基础设施(API/Services/Design Tokens)
│ ├── lib/pages/ → 页面(启动/登录/主页)
│ ├── lib/provider/ → Riverpod 状态管理
│ └── lib/router/ → GoRouter 路由配置
└── docker/ → Docker Compose + Nginx
├── docker-compose.yaml → 服务编排(MySQL + Redis + Backend + Nginx)
├── backend/Dockerfile → 后端容器镜像
└── nginx/nginx.conf → 反向代理 + SSL
```
---
## 🛠️ 技术栈
| 层 | 技术 | 说明 |
| ---------------- | ------------------------------------------------- | -------------------------------- |
| **后端框架** | FastAPI / Uvicorn / Pydantic 2.0 / SQLAlchemy 2.0 | 高性能异步框架,强制类型约束 |
| **数据库迁移** | Alembic | 自动生成迁移脚本 |
| **定时任务** | APScheduler | 任务调度管理 |
| **认证授权** | PyJWT + OAuth2 + RBAC | JWT 滑动过期,角色/数据双权限 |
| **缓存** | Redis | 高性能缓存,接口限流 |
| **Web 管理后台** | Vue 3 + Element Plus + TypeScript + Vite + Pinia | 动态路由,权限驱动菜单 |
| **小程序** | UniApp (unibest) + Wot UI + UnoCSS + Pinia | 跨端小程序框架,微信/支付宝/H5 |
| **移动端** | Flutter 3.44 + Riverpod 3 + GoRouter 17 + TDesign | 跨平台 App,Android/iOS/Web/桌面 |
| **部署** | Docker Compose + Nginx | 容器化一键部署 |
| **AI 框架** | Agno | 智能体集成 |
---
## 📌 内置功能模块
| 模块 | 功能 | 描述 |
| --------------- | ---------------------------------------------- | ------------------ |
| 📊 **仪表盘** | 工作台、分析页 | 系统概览和数据分析 |
| ⚙️ **系统管理** | 用户、角色、菜单、部门、岗位、字典、配置、公告 | 核心系统管理功能 |
| 👀 **监控管理** | 在线用户、服务器监控、缓存监控 | 系统运行状态监控 |
| 📋 **任务管理** | 定时任务 | 异步任务调度管理 |
| 📝 **日志管理** | 操作日志 | 用户行为审计 |
| 🧰 **开发工具** | 代码生成、表单构建、接口文档 | 提升开发效率的工具 |
| 📁 **文件管理** | 文件存储 | 统一文件管理 |
---
## 🚀 快速开始
### 环境要求
| 类型 | 技术栈 | 版本 |
| -------------- | --------------------------- | ------------------- |
| 后端 | Python | ≥ 3.10(推荐 3.12) |
| 后端运行时 | uv / pip | 推荐 uv |
| Web 前端 | Node.js | ≥ 20.0 |
| Web 前端包管理 | pnpm | ≥ 9 |
| 移动端 SDK | Flutter | ≥ 3.44 |
| 数据库 | MySQL / PostgreSQL / SQLite | 见 backend/env 配置 |
| 缓存 | Redis | ≥ 6.x(建议 7.x) |
### 1. 后端
```bash
cd backend
# 环境配置
cp env/.env.example env/.env
# 编辑 env/.env 填入数据库和 Redis 配置
# cp env/.env.prod.example env/.env.prod(生产环境)
# 安装依赖(推荐 uv)
uv sync
# 或使用 pip: pip install -r requirements.txt
# 激活当前环境
source .venv/bin/activate
# 确保 MySQL 在运行,然后创建数据库
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS fastapiadmin DEFAULT CHARACTER SET utf8mb4;"
# 初始化数据库
python main.py upgrade --env=dev
# 启动开发服务(首次启动会自动初始化表与基础数据)
python main.py run --env=dev
```
API 文档:启动后访问 `http://127.0.0.1:6100/api/v1/docs`(Swagger)
### 2. Web 管理后台
```bash
cd frontend/web
# 安装依赖
pnpm install
# 启动开发服务
pnpm dev
```
访问:`http://127.0.0.1:6110`
### 3. 小程序(UniApp + Wot UI)
```bash
cd frontend/uniapp
# 环境配置
cp env/.env.example env/.env
# 安装依赖
pnpm install
# H5 开发
pnpm dev
# 微信小程序
pnpm dev:mp-weixin
```
### 4. 移动端(Flutter 3.44)
```bash
cd frontend/flutter
# 获取依赖
flutter pub get
# 运行(默认设备)
flutter run
# Web 版本
flutter run -d chrome
# 构建 Android
flutter build apk
# 构建 Web
flutter build web
```
### 5. Docker 一键部署
```bash
cd docker
# 配置环境变量
cp .env.example .env
# 编辑 .env 填入真实密码
# 启动全部服务
docker compose --env-file .env up -d
```
---
## 🏗️ 本地架构与默认端口
```mermaid
flowchart LR
subgraph client[浏览器/设备]
U[用户]
end
subgraph fe[前端]
V[Vue3 Web] -->|6110| U
A[UniApp H5] -->|6120| U
F[Flutter Web] -->|6150| U
end
subgraph be[后端]
API[FastAPI / Uvicorn] -->|6100| V
API -->|6100| A
API -->|6100| F
end
subgraph data[数据层]
DB[(MySQL/PostgreSQL)]
R[(Redis)]
end
API --> DB
API --> R
```
| 组件 | 默认地址 |
| ------------ | ----------------------------------- |
| Web 管理后台 | `http://127.0.0.1:6110` |
| UniApp H5 | `http://127.0.0.1:6120` |
| Flutter Web | `http://127.0.0.1:6150` |
| 后端 API | `http://127.0.0.1:6100` |
| Swagger 文档 | `http://127.0.0.1:6100/api/v1/docs` |
| API 前缀 | `/api/v1` |
---
## 🔧 后端二次开发
### 插件化架构
项目采用 **按业务特性分包**(vertical slice)方式组织后端代码,在 `backend/app/api/v1/` 下按模块竖切:
```
backend/app/api/v1/
├── module_system/ → 系统管理
│ ├── auth/ → 认证/登录
│ ├── user/ → 用户管理
│ ├── role/ → 角色管理
│ └── menu/ → 菜单管理
├── module_common/ → 公共模块(文件/健康检查)
├── module_monitor/ → 系统监控
└── module_application/ → 应用管理
```
每个子模块内按逻辑分层:`controller.py` → `service.py` → `crud.py` → `model.py` / `schema.py`
### 创建新模块
```bash
backend/app/api/v1/module_xxx/
├── __init__.py
├── controller.py # API 路由 + 权限
├── model.py # SQLAlchemy ORM 模型
├── schema.py # Pydantic 请求/响应模型
├── service.py # 业务逻辑
└── crud.py # 数据库操作
```
路由自动注册(`app/core/discover.py` 自动扫描),无需手动配置。
### 代码生成器
登录管理后台 → 系统工具 → 代码生成,选择数据库表一键生成前后端 CRUD 代码。
---
## 💡 开发规范
### 后端
- Python:`ruff`(行长度 100)+ 4-space 缩进
- 所有公共函数需要类型提示 + Google 风格 docstring
- 新菜单 order 追加末尾,不插入中间
### 前端
- TypeScript/Vue:ESLint 9 + Prettier(2-space 缩进)
- 管理后台:Element Plus 组件库,品牌色 `#FF6B35`
- 小程序:Wot UI 组件库,UnoCSS 原子类,≤3 原子类用内联
- Flutter:Riverpod `Notifier` + `NotifierProvider`,GoRouter 声明式路由,TDesign 组件
---
## 📄 许可证
本项目基于 MIT 许可证开源。
---
如果你喜欢这个项目,给个 ⭐️ 支持一下吧!