🚀 快速构建企业级后台管理系统:vue-django-docker

0 阅读3分钟

🚀 快速构建企业级后台管理系统:vue-django-docker

引言

在现代软件开发中,前后端分离的架构越来越受欢迎。然而,搭建一个完整的前后端项目往往需要大量的配置和集成工作,这不仅耗时,还容易出错。今天给大家介绍一个基于 Vue3 + Django + Docker 的开源项目——vue-django-docker,它可以帮助你快速搭建一个功能齐全的企业级后台管理系统。

功能特点

以下是 vue-django-docker 项目的核心功能:

功能模块描述
用户管理提供用户注册、登录、权限管理等功能
数据管理支持数据的增删改查操作
日志记录记录系统操作日志,方便追踪问题
任务调度集成 Celery,支持定时任务和异步任务
国际化支持多语言切换,方便国际化应用

技术亮点

1. 代码架构清晰

项目采用了模块化的设计,前端使用 Vue3 和 Element Plus,后端使用 Django。整体结构如下:

  • 前端web/ 目录
  • 后端backend/ 目录
  • Dockerops/ 目录

2. 独特的技术实现

ReAsideTable 组件

ReAsideTable 是一个封装了子表组件的 Vue 组件,支持函数式调用。通过 addDialog 函数可以轻松地在弹框中展示子表数据。

import { useMerge } from "@fast-crud/fast-crud";
import asideTable, { type ReAsideTableProps } from "./src/index.vue";
import { withInstall } from "@pureadmin/utils";
import { addDialog } from "../ReDialog";

interface DialogAsideTable {
  props: ReAsideTableProps;
  [key: string]: any;
}

export const ReAsideTable = withInstall(asideTable);

export const dialogAsideTable = (options: DialogAsideTable) => {
  const { merge } = useMerge();
  const defaultProps = {
    width: "70%",
    title: "函数式弹框",
    contentRenderer: () => ReAsideTable
  };
  addDialog(merge(defaultProps, options));
};

export default ReAsideTable;

巧妙之处在于:通过 useMergeaddDialog 函数,可以灵活地自定义弹框的属性,并且保持代码的简洁性。

ReCol 组件

ReCol 是对 Element Plus 的 ElCol 组件的封装,简化了响应式布局的配置。

import { ElCol } from "element-plus";
import { h, defineComponent } from "vue";

export default defineComponent({
  name: "ReCol",
  props: {
    value: {
      type: Number,
      default: 24
    }
  },
  render() {
    const attrs = this.$attrs;
    const val = this.value;
    return h(
      ElCol,
      {
        xs: val,
        sm: val,
        md: val,
        lg: val,
        xl: val,
        ...attrs
      },
      { default: () => this.$slots.default() }
    );
  }
});

巧妙之处在于:通过 defineComponenth 函数,实现了对 ElCol 组件的封装,简化了响应式布局的配置。

3. 代码质量高

项目中的代码质量很高,注释详细,易于理解和维护。每个组件都有详细的文档说明,方便开发者快速上手。

快速上手

本地开发

  1. 克隆项目:
    git clone https://gitee.com/Muzi-Li-Chine/vue-django-docker.git
    cd vue-django-docker
    
  2. 启动后端:
    cd backend
    pip install -r requirements.txt
    python manage.py makemigrations
    python manage.py migrate
    python manage.py init
    python manage.py init_area
    python manage.py runserver 0.0.0.0:8849
    
  3. 启动前端:
    cd web
    pnpm install
    pnpm dev
    

线上部署

  1. 下载基础镜像:

    • MySQL 镜像:mysql:8.0
    • Redis 镜像:redis:5.0.4-alpine3.9
    • Python 镜像:python:3.11-slim
    • Nginx 镜像:nginx:stable-alpine3.23-perl
  2. 构建后端 Django 镜像:

    bash ./ops/django/build.sh
    
  3. 构建前端 Nginx 镜像:

    bash ./ops/nginx/build.sh
    
  4. 首次启动:

    sh init.sh
    
  5. 更新项目:

    sh build.sh
    

适用场景

  • 企业级后台管理系统:适用于需要快速搭建企业级后台管理系统的企业。
  • 前后端分离项目:适合前后端分离架构的项目,提供了一整套解决方案。
  • 多语言支持:支持多语言切换,适合国际化应用。

项目信息

互动话题

如果你对这个项目感兴趣,或者有任何疑问,欢迎在评论区留言讨论!🌟

#vue #django #docker #企业级后台管理系统 #前后端分离 #开源项目