## 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 # 项目简介 本项目为基于 Django5 + Vue3(vben-admin)全栈开发的企业级中后台管理系统,支持动态菜单、按钮权限、自动化代码生成、前后端权限联动等功能,适用于多角色、多权限场景的管理后台。 新增 ai_service 子项目,基于 FastAPI 实现,集成了 AI 对话能力,支持接入 DeepSeek 等大模型,实现智能对话、知识问答等功能,可灵活扩展多种 AI 场景。 ## 在线体验 - admin/admin123 - chenze/admin123 体验地址:https://demo.ywwuzi.cn 文档地址:https://docs.ywwuzi.cn ## 功能截图
AI对话
AI对话
AI绘画
AI对话
部门管理
部门管理
用户管理
用户管理
角色管理
角色管理
岗位管理
岗位管理
菜单管理
菜单管理
前端界面
前端界面
权限员工界面
普通员工界面
# 许可证 本项目遵循 MIT License。 它是一个完全开源的快速开发平台,个人、团体使用免费,Django-Vue3-Admin 是一个基于 RBAC(基于角色的访问控制)模型进行权限控制的全面基础开发平台,权限控制粒度达到列级。它遵循前后端分离的架构,后端使用 Django 和 Django Rest Framework,前端使用 Vue3、Composition API、TypeScript、Vite 和 vben-admin(Ant Design Vue)。 # 启动说明 python 版本 3.12 node 版本v22.17.0 ## 后端启动 0. 修改数据库配置: 打开 backend/backend/settings.py,找到 DATABASES,根据实际情况修改数据库连接信息(如主机、端口、用户名、密码、数据库名等)。 ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_vue', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', } } ``` 1. 进入 backend 目录: ```bash cd backend ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 导入数据库(默认 MySQL): ```bash # 先在 MySQL 中创建数据库(如 django_vue) mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS django_vue DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 导入数据 mysql -u root -p django_vue < ../sql/django_vue.sql ``` sql 文件位于 sql/django_vue.sql。 如需更换数据库类型,请修改 backend/backend/settings.py 中的数据库配置。 4. 启动服务: ```bash python manage.py runserver ``` ## (可选)Django 项目中启动 Celery 的标准方法如下: ### Celery 任务队列与监控 ### 启动 Celery Worker ![Celery 启动界面](images/celery.png) ```bash celery -A backend worker -l info ``` ### 启动 Celery Beat(如有定时任务) 定时任务配置在 `backend/backend/settings.py` 的 `CELERY_BEAT_SCHEDULE`。 ```python CELERY_BEAT_SCHEDULE = { 'every-1-minutes': { 'task': 'system.tasks.sync_temu_order', # 任务路径 'schedule': 60, # 每1分钟执行一次 }, } ``` ```bash celery -A backend beat -l info ``` ### 启动 Flower 监控 ```bash celery -A backend flower --port=5555 --basic_auth=admin:admin123 ``` - `--port=5555`:指定 Flower 的访问端口(可自定义) - `--basic_auth=用户名:密码`:设置访问 Flower 的账号密码(如 admin:admin123) 启动后,浏览器访问 [http://localhost:5555](http://localhost:5555) ,输入账号密码即可进入 Celery 任务监控界面。 ![Celery 监控界面](images/flower.png) --- # ai_service 启动说明 ai_service 是基于 FastAPI 的 AI 服务模块,支持本地开发和生产部署。 ## 依赖安装 1. 进入 ai_service 目录: ```bash cd ai_service ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` ## 配置说明 - 数据库、API Key、模型等配置请参考 `ai_service/config.py`,`.env` 或相关环境变量。 - 如需自定义数据库等参数,请根据实际情况修改配置文件。 ## 本地开发启动(推荐 uvicorn) ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8010 ``` - `--reload`:支持热重载,开发环境建议开启。 - 默认访问地址:http://localhost:8010/docs 可查看自动生成的 API 文档。 ## 生产部署(推荐 gunicorn + uvicorn worker) ```bash gunicorn main:app -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8010 --workers 4 ``` - `--workers`:根据服务器 CPU 核心数调整。 - 生产环境建议关闭 `--reload`。 --- ## 前端启动(以 web-antd 为例) > 说明:web-ele 目前暂不支持,待 InputPassword 等组件开发完毕后再兼容。 1. 进入前端目录: ```bash cd web ``` 2. 安装依赖: ```bash pnpm install ``` 3. 启动开发服务: ```bash npm run dev:antd ``` # Docker 启动与部署 ## 开发环境一键启动 1. 复制开发环境变量模板(如有): ```bash cp docker/.env.example docker/.env.local # 根据实际情况修改 docker/.env.local ``` 2. 构建并启动所有开发服务: ```bash docker compose -f docker-compose.dev.yml up -d --build ``` 3. 关闭所有开发服务: ```bash docker compose -f docker-compose.dev.yml down ``` > 如需自定义端口、数据库、Redis 密码等,请修改 `docker/.env.local` 文件。 ## 生产环境一键启动 本项目支持一键 Docker 部署,推荐生产环境使用。 1. 复制环境变量模板: ```bash cp docker/.env.example docker/.env.local # 根据实际情况修改 docker/.env.local ``` 2. 构建并启动所有服务: ```bash docker compose -f docker-compose.prod.yml up -d --build ``` 3. 关闭所有服务: ```bash docker compose -f docker-compose.prod.yml down ``` 如需自定义端口、数据库、Redis 密码等,请修改 docker/.env.local 文件。 ## 阿里云 OSS 配置 ### 启用 OSS 上传 1. 在 `docker/.env.prod` 中配置 OSS 参数: ```env VITE_OSS_ENABLED=true VITE_OSS_REGION=oss-cn-hangzhou VITE_OSS_ACCESS_KEY_ID=your_access_key_id VITE_OSS_ACCESS_KEY_SECRET=your_access_key_secret VITE_OSS_BUCKET=your_bucket_name VITE_OSS_PREFIX=frontend/ VITE_OSS_DELETE_LOCAL=false ``` ### 禁用 OSS 上传 将 `VITE_OSS_ENABLED` 设置为 `false` 或删除相关配置即可。 ## 演示环境配置 ### 启用演示模式 在 `docker/.env.prod` 中设置: ```env DEMO_MODE=true ``` 演示模式下: - 全局禁止所有修改和删除操作(POST、PUT、PATCH、DELETE) - 只允许登录、登出等基础操作 - 所有修改/删除请求将返回 403 错误 - **禁用 Django Admin 后台管理界面** - 适用于在线演示,防止数据被误操作 ### 禁用演示模式 将 `DEMO_MODE` 设置为 `false` 或删除该配置即可正常使用所有功能,包括 Admin 后台。 --- # 技术架构 - **后端**:Django + Django REST framework - **前端**:Vue3 + Vite + vben-admin(Ant Design Vue) - **数据库**:默认 MySQL,可扩展为 PostgreSQL # 后端技术栈 - Python 3.12+ - Django 5.x - Django REST framework - Celery(可选,任务队列) - 角色/菜单/按钮权限模型 - 自动化菜单/权限生成脚本 # 前端技术栈 - Vue3 - Vite - TypeScript - Pinia(状态管理) - Ant Design Vue - vben-admin 组件库 - 动态路由与权限指令 # 功能特点 - 动态菜单与多级路由,支持后端驱动 - 按钮级别权限控制,支持 v-permission 指令 - 角色多对多、权限灵活分配 - 自动化脚本生成菜单与权限 - 通用权限校验,支持接口级、按钮级 - 登录日志、操作日志 - 支持多端适配与主题切换 - 代码生成器辅助开发