🤔 你是不是也这样想过?
FastAPI接口写得飞起,客户突然问:“能给我个页面看看数据不?” 你不想从头撸一套后台,于是搜到 FastApiAdmin —— 哇,一行代码起一个后台?真香!但真用起来才发现,香归香,坑也是一个接一个。
今天我就把自己挠破头踩过的坑、总结的选择逻辑,一股脑儿倒给你。咱不写冷冰冰的文档,只讲人话。
📌 本文能帮你解决什么
✅ 避开 FastApiAdmin 安装中的依赖地狱
✅ 5 分钟跑起来一个能用的后台
✅ 知道什么时候该用它,什么时候赶紧绕道
✅ 遇见报错不再慌,直接对照我的踩坑记录
🧭 主要内容脉络
安装与踩坑 ➡️ 最简配置 ➡️ 自定义字段与鉴权 ➡️ 生产环境注意事项 ➡️ 我的选型红黑榜
1. FastApiAdmin 到底是个啥?
简单说,它是一个完全开源的全栈式快速开发平台,专门用来帮你快速搭建企业级中后台系统。
和 pip install 就能用的轻量插件 fastapi-admin 不同,FastApiAdmin 需要通过 git clone 下载完整项目来使用。
git clone https://github.com/fastapiadmin/FastapiAdmin.git
# 或使用 Gitee
git clone https://gitee.com/fastapiadmin/FastapiAdmin.git
它的后端基于 FastAPI + SQLAlchemy,前端则是 Vue3 + TypeScript + Element-Plus,前后端分离架构,开箱自带用户管理、RBAC 权限、菜单配置、日志监控等一堆企业级功能。
⚠️ 重灾区提示: 如果你只是想给已有的 FastAPI 项目加个简单的后台,那 fastapi-admin(pip 安装,基于 Tortoise ORM)更合适;
如果你是从零起一个新的企业级后台项目,直接 clone FastApiAdmin 能省你至少两周的脚手架搭建时间。
🔍 核心区别一览
| 对比维度 | fastapi-admin | FastApiAdmin |
|---|---|---|
| 一句话定位 | 轻量级Admin仪表板 | 全栈式企业级快速开发平台 |
| 安装方式 | pip install fastapi-admin |
git clone 下载完整项目 |
| 后端ORM | Tortoise ORM | SQLAlchemy |
| 前端技术 | Tabler UI (后端渲染) | Vue3 + TypeScript + Element-Plus |
| 适用场景 | 已有FastAPI项目,快速加个后台 | 从零开始搭建企业级中后台系统 |
简单说:fastapi-admin 像个“插件”,往现有项目里一装就能用;FastApiAdmin 是整套“精装房”,你需要基于它来开发整个项目。
2. 安装中我踩过的无语瞬间
别以为 git clone 下来就能直接跑。我当初装完依赖就急着 python main.py,结果报了一堆错。后来才发现:
-
它需要 先配置数据库连接,在
.env文件里填好 MySQL 或 PostgreSQL 的信息 -
前端依赖要用 pnpm 装,不是 npm(我当初 npm install 搞了半天跑不起来)
-
后端和前端要分别启动,先跑后端再跑前端
环境配置这块,建议老老实实把项目 README 或下面链接的 快速上手 从头到尾读一遍,可别偷懒跳着看,指不定哪个没注意,又掉坑里了。
https://service.fastapiadmin.com/guide/start.html
3. 官方Slogan:5 分钟跑起来一个后台
## 1 配置环境变量
cd FastapiAdmin/backend
cp env/.env.dev.example env/.env.dev
# 编辑 env/.env.dev,填写数据库连接、Redis、JWT 密钥等## 2 安装依赖并启动
# 推荐使用 uv(与 pyproject.toml 一致)
uv sync
uv run main.py run --env=dev
# 服务启动后,浏览器访问 http://localhost:8001 后台自动初始化应用及数据库
# 初始化完成后,输出:
#🔗 Swagger: http://localhost:8001/api/v1/docs
#🔗 ReDoc: http://localhost:8001/api/v1/redoc
#🔗 LangJin: http://localhost:8001/api/v1/ljdoc
后端跑起来了,现在来启动前端页面:
# Web 前端 (Vue3)
cd FastapiAdmin/frontend/web
pnpm install
# 检查环境变量中的后台地址 .env.development(默认指向官网演示)
# 启动项目
pnpm run dev
# 出现如下提示即表示初始化完成,自动打开浏览器并载入后台登录页面
# ➜ Local: http://localhost:5180/web
4. 生产环境:这几个雷我替你趟了
🔴 Redis 连接尽量不要用默认 localhost。容器化部署时,经常连不上,要用服务名或环境变量。
🔴 admin 静态文件挂载:如果在反向代理后,记得配置静态文件路径,否则后台界面裸奔。
🔴 日志监控:开启 admin 的操作日志,方便查问题。如果误删数据,没日志查,就只能硬着头皮从备份恢复。
5. 选择建议:到底用不用它?
我现在的判断标准很简单:
✅ 适合用:后台需求是“能增删改查就行”,团队人少,不想维护前端项目,追求快速交付。
❌ 不适合用:需要复杂交互、自定义页面占比大、数据源不是 SQLAlchemy、或者 UI 设计要求极高。
工具没有绝对好坏,就像螺丝刀,你拿它开瓶盖也不是不行,但到底还是旋螺丝舒服。
💬 如果你也用过 FastApiAdmin,或者正打算用它,欢迎在留言区说说你的场景和困惑。点赞收藏加关注 后面我们接着聊聊它的自定义二次开发……别错过哦~
