开源地址
✨ 功能特性
🔐 权限管理
- RBAC 权限控制:基于角色的访问控制,支持菜单、按钮级别权限
- 数据权限:支持组织级数据隔离,可按组织、用户过滤数据
- 动态权限:权限实时生效,无需重启服务
- 权限继承:角色权限可继承,支持权限组合
🎨 系统管理
- 用户管理:用户增删改查、密码重置、角色分配
- 角色管理:角色创建、权限分配、菜单绑定
- 菜单管理:动态菜单树、图标选择、路由配置
- 组织管理:多级组织架构,支持组织树管理
- 权限管理:细粒度权限控制,支持 API 级别权限
📊 仪表盘
- 系统监控:实时显示 CPU、内存、磁盘、网络使用情况
- 数据统计:用户、角色、菜单、权限等数据统计
- 图表展示:基于 ECharts 的数据可视化
- 操作日志:最近操作记录展示
📝 操作日志
- 自动记录:中间件自动捕获所有 API 请求
- 详细记录:记录请求参数、响应数据、IP 地址、User-Agent
- 敏感数据过滤:自动过滤密码、Token 等敏感信息
- 多维度查询:支持按用户、操作类型、时间范围等查询
⏰ 任务调度
- 定时任务:基于 APScheduler 的定时任务管理
- 任务管理:任务的增删改查、立即执行
- Cron 表达式:支持标准的 Cron 表达式配置
- 任务状态:任务启用/禁用、执行状态监控
🔧 代码生成器
- 一键生成:根据模型定义自动生成前后端代码
- CRUD 完整:自动生成模型的增删改查接口
- 前端页面:自动生成 Vue 页面,包含列表、表单、搜索
- 数据权限:可选启用增强型数据权限控制
- 代码注释:生成的代码包含完整注释
📦 其他功能
- 文件上传:支持文件上传和管理
- 软删除:支持数据的软删除和恢复
- 审计字段:自动记录创建人、创建时间、更新人、更新时间
- 数据分页:统一的分页接口
- 搜索过滤:支持多字段搜索和过滤
🛠️ 技术栈
后端
- Django 5.2.7 - Web 框架
- Django REST Framework - RESTful API 框架
- django-filter - 数据过滤
- django-cors-headers - 跨域支持
- APScheduler - 任务调度
- psutil - 系统监控
- MySQL/SQLite - 数据库
前端
- Vue 3 - 前端框架
- Vite - 构建工具
- Arco Design - UI 组件库
- Vue Router - 路由管理
- Vuex - 状态管理
- Axios - HTTP 客户端
- ECharts - 数据可视化
致谢与引用:本项目前端最初基于
arco_admin_template做了二次封装与改造,包含路由/菜单动态化、权限接入与页面结构优化等。 模板项目地址:https://github.com/zhaozhentao/arco_admin_template
📁 项目结构
django-vue-adminx/
├── backend/ # 后端项目目录
│ ├── apps/ # Django 应用目录
│ │ ├── audit/ # 操作日志应用
│ │ │ ├── models.py # 操作日志模型
│ │ │ ├── middleware.py # 日志中间件
│ │ │ ├── serializers.py # 序列化器
│ │ │ ├── views.py # 视图集
│ │ │ └── urls.py # URL 路由
│ │ ├── rbac/ # RBAC 权限应用
│ │ │ ├── models.py # 用户、角色、权限模型
│ │ │ ├── permissions.py # 权限控制类
│ │ │ ├── serializers.py # 序列化器
│ │ │ ├── views.py # 视图集
│ │ │ └── management/ # 管理命令
│ │ │ └── commands/
│ │ │ └── init_rbac.py # RBAC 初始化命令
│ │ ├── codegen/ # 代码生成器应用
│ │ │ ├── views.py # 代码生成视图
│ │ │ └── templates/ # 代码模板
│ │ │ ├── backend/ # 后端模板
│ │ │ └── frontend/ # 前端模板
│ │ ├── tasks/ # 任务调度应用
│ │ │ ├── models.py # 任务模型
│ │ │ ├── scheduler.py # 调度器
│ │ │ └── views.py # 视图集
│ │ ├── common/ # 公共应用
│ │ │ ├── models.py # 基础模型
│ │ │ ├── mixins.py # Mixin 类
│ │ │ ├── viewsets.py # 视图集基类
│ │ │ └── pagination.py # 分页类
│ │ └── curdexample/ # 示例应用
│ ├── django_vue_adminx/ # Django 项目配置
│ │ ├── settings.py # 项目配置
│ │ ├── urls.py # 根 URL 配置
│ │ └── wsgi.py # WSGI 配置
│ ├── requirements.txt # Python 依赖
│ ├── Dockerfile.backend # 后端 Dockerfile
│ ├── manage.py # Django 管理脚本
│ ├── templates/ # 模板目录
│ └── media/ # 媒体文件目录
├── front-end/ # 前端项目
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── layout/ # 布局组件
│ │ ├── router/ # 路由配置
│ │ ├── store/ # 状态管理
│ │ └── utils/ # 工具函数
│ ├── package.json # 依赖配置
│ ├── vite.config.js # Vite 配置
│ └── Dockerfile # 前端 Dockerfile
├── docker-compose.yml # Docker Compose 配置
├── README.md # 项目说明文档
└── DOCKER.md # Docker 部署文档
🚀 快速开始
环境要求
- Python 3.12+
- Node.js 22+
- MySQL 8.0+ (可选,默认使用 SQLite)