Skip to content

DearGay/django-vue3-admin

 
 

Repository files navigation

项目简介

本项目为基于 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

后端启动

  1. 修改数据库配置: 打开 backend/backend/settings.py,找到 DATABASES,根据实际情况修改数据库连接信息(如主机、端口、用户名、密码、数据库名等)。
    DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'django_vue',
         'USER': 'root',
         'PASSWORD': '',
         'HOST': 'localhost',
     }

}

1. 进入 backend 目录:
   ```bash
   cd backend
  1. 安装依赖:
    pip install -r requirements.txt
  2. 导入数据库(默认 MySQL):
    # 先在 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 中的数据库配置。
  3. 启动服务:
    python manage.py runserver

(可选)Django 项目中启动 Celery 的标准方法如下:

Celery 任务队列与监控

启动 Celery Worker

Celery 启动界面

celery -A backend worker -l info

启动 Celery Beat(如有定时任务)

定时任务配置在 backend/backend/settings.pyCELERY_BEAT_SCHEDULE

CELERY_BEAT_SCHEDULE = {
    'every-1-minutes': {
        'task': 'system.tasks.sync_temu_order',  # 任务路径
        'schedule': 60,  # 每1分钟执行一次
    },
}
celery -A backend beat -l info

启动 Flower 监控

celery -A backend flower --port=5555 --basic_auth=admin:admin123
  • --port=5555:指定 Flower 的访问端口(可自定义)
  • --basic_auth=用户名:密码:设置访问 Flower 的账号密码(如 admin:admin123)

启动后,浏览器访问 http://localhost:5555 ,输入账号密码即可进入 Celery 任务监控界面。

Celery 监控界面


ai_service 启动说明

ai_service 是基于 FastAPI 的 AI 服务模块,支持本地开发和生产部署。

依赖安装

  1. 进入 ai_service 目录:
    cd ai_service
  2. 安装依赖:
    pip install -r requirements.txt

配置说明

  • 数据库、API Key、模型等配置请参考 ai_service/config.py.env 或相关环境变量。
  • 如需自定义数据库等参数,请根据实际情况修改配置文件。

本地开发启动(推荐 uvicorn)

uvicorn main:app --reload --host 0.0.0.0 --port 8010
  • --reload:支持热重载,开发环境建议开启。
  • 默认访问地址:http://localhost:8010/docs 可查看自动生成的 API 文档。

生产部署(推荐 gunicorn + uvicorn worker)

gunicorn main:app -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8010 --workers 4
  • --workers:根据服务器 CPU 核心数调整。
  • 生产环境建议关闭 --reload

前端启动(以 web-antd 为例)

说明:web-ele 目前暂不支持,待 InputPassword 等组件开发完毕后再兼容。

  1. 进入前端目录:
    cd web
  2. 安装依赖:
    pnpm install
  3. 启动开发服务:
    npm run dev:antd

Docker 启动与部署

开发环境一键启动

  1. 复制开发环境变量模板(如有):
    cp docker/.env.example docker/.env.local
    # 根据实际情况修改 docker/.env.local
  2. 构建并启动所有开发服务:
    docker compose -f docker-compose.dev.yml up -d --build
  3. 关闭所有开发服务:
    docker compose -f docker-compose.dev.yml down

如需自定义端口、数据库、Redis 密码等,请修改 docker/.env.local 文件。

生产环境一键启动

本项目支持一键 Docker 部署,推荐生产环境使用。

  1. 复制环境变量模板:
    cp docker/.env.example docker/.env.local
    # 根据实际情况修改 docker/.env.local
  2. 构建并启动所有服务:
    docker compose -f docker-compose.prod.yml up -d --build
  3. 关闭所有服务:
    docker compose -f docker-compose.prod.yml down

如需自定义端口、数据库、Redis 密码等,请修改 docker/.env.local 文件。

阿里云 OSS 配置

启用 OSS 上传

  1. docker/.env.prod 中配置 OSS 参数:
    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 中设置:

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 指令
  • 角色多对多、权限灵活分配
  • 自动化脚本生成菜单与权限
  • 通用权限校验,支持接口级、按钮级
  • 登录日志、操作日志
  • 支持多端适配与主题切换
  • 代码生成器辅助开发

About

django vue3 ts admin vben fastapi langchain

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 46.3%
  • TypeScript 34.4%
  • Python 9.0%
  • PLpgSQL 7.6%
  • CSS 1.4%
  • JavaScript 0.4%
  • Other 0.9%