# 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.0

现代化全栈快速开发平台模板

FastAPI + Vue3 + UniApp + Flutter — 一套框架,三端覆盖

Version License

--- ## 📘 项目介绍 **FastApiAdmin v3.0** 是一套**完全开源、高度模块化、三端统一**的现代化全栈开发平台模板。基于 FastAPI 后端 + Vue3 管理后台 + UniApp 小程序 + Flutter 移动端,提供从需求到上线的完整技术栈方案。 > **设计初心**:以模块化、松耦合为核心,追求丰富的功能模块、简洁易用的接口、详尽的开发文档和便捷的维护方式。通过统一框架和组件,降低技术选型成本,遵循开发规范和设计模式,构建强大的代码分层模型。 --- ## 📸 界面预览 | Web 管理后台 | UniApp 移动端 | Flutter 移动端 | | :-------------------------------------------------: | :----------------------------------------------: | :------------------------------------------------: | | ![Web 管理后台](docs/screenshots/web-dashboard.png) | ![UniApp 首页](docs/screenshots/uniapp-home.png) | ![Flutter 首页](docs/screenshots/flutter-home.png) | --- ## 🎯 核心优势 | 优势 | 描述 | | ----------------- | ------------------------------------------------------- | | 🔥 **三端统一** | 一套后端,覆盖 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 许可证开源。 ---

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