本仓库基于FluxPanel项目修改,将Dash Plotly库挂载到fastapi后台上,用Dash的第三方库feffery-antd-components和feffery-antd-charts做数据分析与呈现。
给不熟悉前端但是有数据分析需求的人提供一个使用纯python开发后台管理系统的思路。
使用FluxPanel根据数据库表结构或者SQL建表语句,自动生成ORM代码、增删改查逻辑、前端一体化表格、api接口。
然后用Dash Plotly、feffery-antd-components、feffery-antd-charts做数据分析呈现。
具体开发环境和部署方式请参考 FluxPanel简介。
挂载的Dash应用在flux-backend/dashapp
目录下,dashapp.py
是入口文件,pages
目录下是各个页面文件。dash页面对应的地址为:http://localhost:9099/dash/filename
,将dash页面地址绑定到FluxPanel的导航菜单上即可使用。
FluxPanel是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
- 前端采用Vue3、Element Plus,基于RuoYi-Vue3前端项目修改。
- 后端采用FastAPI、sqlalchemy、MySQL、Redis、OAuth2 & Jwt。
- 权限认证使用OAuth2 & Jwt,支持多终端认证系统。
- 支持加载动态权限菜单,多方式轻松权限控制。
- 支持代码生成,一键生成前后端代码
- 特别鸣谢:RuoYi-Vue3
用户名: admin
密码: admin123
【FluxPanel第一期】 https://www.bilibili.com/video/BV1cjfHYUEPn
【FluxPanel第二期】 https://www.bilibili.com/video/BV1ftKNeDE1S
【FluxPanel第三期】 https://www.bilibili.com/video/BV1mFQkYeEmu
Gitee | https://gitee.com/richard403_admin/flux-panel |
Github | https://github.com/Richard0403/FluxPanel |
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 部门管理:配置系统组织机构(公司、部门、小组)。
- 岗位管理:配置系统用户所属担任职务。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 通知公告:系统通知公告信息发布维护。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 在线用户:当前系统中活跃用户状态监控。
- 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
- 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
- 缓存监控:对系统的缓存信息查询,命令统计等。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 代码生成:根据mysql数据表的结构,自动生成python代码和vue代码
- 表字段管理:数据表格字段持久化,界面操作列的宽度,列的排序,显示隐藏等功能
- 表单构建:表单代码和配置的持久化,自动对接表单填报API,用户填报数据展示、导出功能
- 数据导入:支持批量导入数据,界面选择Excel列和表字段的对应,支持默认值
- 代码生成支持主子表树表、代码生成后一键导入到项目(开发中)
# 克隆项目
git clone https://github.com/Richard0403/FluxPanel.git
# 进入项目根目录
cd FluxPanel
本地node版本为v18.20.5, 其他版本可做尝试,不保证均可正常运行
# 进入前端目录
cd flux-frontend
# 安装依赖
npm install 或 yarn --registry=https://registry.npmmirror.com
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
# 启动服务
npm run dev 或 yarn dev
建议使用aconda管理环境, python版本推荐3.11
# 进入后端目录
cd ruoyi-fastapi-backend
# 安装依赖环境, 建议使用aconda, python版本推荐3.11
pip3 install -r requirements.txt
# 配置环境
在.env.dev(开发环境)文件中配置开发环境的数据库和redis,
.env.prod未正式环境使用, 复制.env.prod-templates文件即可
# 运行sql文件
1.新建数据库flux-data(默认,可修改)
2.使用命令或数据库连接工具运行sql文件夹下的flux-data.sql
# 运行后端
python3 app.py --env=dev
# 默认账号密码
账号:admin
密码:admin123
# 浏览器访问
地址:http://localhost:80
# 构建测试环境
npm run build:stage 或 yarn build:stage
# 构建生产环境
npm run build:prod 或 yarn build:prod
# 配置环境
在.env.prod文件中配置生产环境的数据库和redis
# python直接运行后端
python3 app.py --env=prod
# 或者使用gunicorn
export APP_ENV=prod
gunicorn server:app --workers 17 --worker-class uvicorn_worker.UvicornWorker --bind 0.0.0.0:9099
#或者使用granian(性能更好)
export APP_ENV=prod
granian --interface asgi --workers 17 --runtime-threads 3 server:app --host 0.0.0.0 --port 9099
# 克隆项目
git clone https://github.com/Richard0403/FluxPanel.git
# 进入项目根目录
cd FluxPanel
# 配置环境
复制flux-backend/.env.prod-docker-templates文件,命名为.env.dev,放到flux-backend中
cd docker
# 启动容器
docker compose up -d
# 查看容器是否启动
docker ps
# 首次执行的时候会自动运行sql文件夹下的flux-data.sql,所以需要等待一会儿才能真正跑起来
本地node版本为v18.20.5, 其他版本可做尝试,不保证均可正常运行
# 进入前端目录
cd flux-frontend
# 环境配置
在 .env.development 中,设置 VITE_APP_BASE_API = http://127.0.0.1/server
在 .env.production 中,设置 VITE_APP_BASE_API = /server
# 安装依赖
npm config set registry https://registry.npmmirror.com
npm install -g pnpm
pnpm install
# 启动服务
pnpm dev
# 环境配置
在 .env.production 中,设置 VITE_APP_PROXY_API = /server
cd flux-frontend
pnpm run build:prod
# 运行结束就配置好了
访问 http://your-domain 就可以了
如果有对本项目及FastAPI感兴趣的朋友,欢迎加入微信群学习交流。如果你觉得这个项目帮助到了你,你可以请作者喝杯咖啡表示鼓励☕。扫描下面微信二维码添加微信备注Flux即可进群。
![]() |
![]() |