介绍
基于 Python 的 FastAPI 框架,结合 Vue3 与 Element Plus 开发的一款开箱即用的纯净后台管理系统。它内置了完整的用户权限管理体系,旨在帮助开发者快速构建后端开发脚手架。您无需从零实现身份认证等通用功能,只需专注于自身业务逻辑的开发。系统支持动态路由注册与权限配置,实现菜单与功能的精细化管控。
后端
- 使用软件版本
- Python version <= 3.13
- MySQL version 8.0.23
- Redis version 6.0.9
- Node version 18.15.0
后端架构:
- FastAPI 异步框架 + SQLAlchemy 2.0 异步ORM
- Redis 异步连接池(自定义扩展)
- Celery 异步任务队列 + Beat 定时任务
- 统一异常处理和响应封装
- 请求中间件(日志、鉴权、trace_id)
- 自定义日志系统(Loguru)
- 依赖注入和会话管理
- 分层架构(apis/services/models/schemas)
前端架构:
- 采用 Vue 3 + Vite + TypeScript
- Element Plus UI 组件库
- Pinia 状态管理 + 持久化
- 前后端路由控制
- 权限指令系统
- Monaco 代码编辑器
- 主题配置和暗黑模式
- 完整的布局系统
- 动态路由注册,在前端菜单管理中添加菜单后,即可分配权限使用
1. 数据库初始化(一键完成)
推荐方式:
前置条件:
- 创建数据库:
CREATE DATABASE fastapiwebadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 配置
cp.env.example 重命名为.env 修改文件中的数据库连接
- 安装依赖驱动:
pip install requirements
2. 使用 Alembic
如果你需要手动管理迁移:
# 初始化
python cli.py init-db
# 生成迁移文件
alembic revision --autogenerate -m “描述信息”
# 执行迁移
alembic upgrade head
# 回滚迁移
alembic downgrade -1
前端
- 基于 vite + vue3 + + Pinia + element-plus
平台预览
项目启动初始化-后端
# 克隆项目
git clone https://github.com/rebort-hub/fastapiwebadmin.git
# 数据库脚本,需要新建数据库 fastapiwebadmin
backend/script/db_init.sql
# 修改对应的数据库地址,redis 地址
backend/config.py
# 或者
backend/.env # 环境文件中的地址修改
# 安装依赖
pip install -r requirements
# 运行项目 /backend 目录下执行
python main.py
# 异步任务依赖 celery 启动命令
# windows 启动,只能单线程 /backend 目录下执行
celery -A celery_worker.worker.celery worker --pool=solo -l INFO
# linux 启动
celery -A celery_worker.worker.celery worker --loglevel=INFO -c 10 -P solo -n fastapiwebadmin-celery-worker
# 定时任务启动
celery -A celery_worker.worker.celery beat -S celery_worker.scheduler.schedulers:DatabaseScheduler -l INFO
# 定时任务心跳启动
celery -A celery_worker.worker.celery beat -l INFO
项目启动初始化-前端
# node 版本
node -v
v18.15.0
- 复制代码(桌面 cmd 运行)
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 复制代码(桌面 cmd 运行)
npm install -g yarn
# 克隆项目
git clone https://github.com/rebort-hub/fastapiwebadmin.git
# 进入项目
cd /frontend
# 安装依赖
cnpm install
# 或者
yarn insatll
# 运行项目
cnpm run dev
# 或者
yarn dev
# 打包发布
cnpm run build
# 或者
yarn build
支持与反馈
如果这个框架对你有帮助,并且已经在项目中使用,欢迎在 GitHub 仓库点一个 ⭐ Star,这将激励项目持续迭代更新。
希望这个开箱即用的解决方案能提升你的开发效率。更多技术实践与资源,欢迎访问 云栈社区 进行交流探讨。
|