# 项目介绍

# 整体结构

├── dvadmin-ui              // 前端项目
├── dvadmin-backend         // 后端项目
├── docker_env              // docker 安装配置
├── docker-compose.yml      // docker-compose 配置
├── README.md               // 项目的说明文档
├── LICENSE                 // 开源 LICENSE
└── run-docker.sh           // 一键启动docker 脚本
1
2
3
4
5
6
7

# 前端项目结构

├── README.md               // 项目的说明文档
├── build                   // 项目构建(webpack)相关代码
├── dist                    // 配置目录,包括端口号等
├── package.json            // npm包配置文件,里面定义了项目的npm脚本,依赖包等信息
├── babel.config.js         // babel
├── public                  // 项目根目录
│   ├── favicon.ico         // ico 图标
│   └── index.html          // 首页入口文件,你可以添加一些 meta 信息或统计代码啥的。
├── src                     // 开发的目录
│   ├── App.vue             // 项目入口文件
│   ├── api                 // api 接口地址
│   │   └── vadmin          // dvadmin专有api接口,建议不要修改或新增内容
│   ├── assets              // 项目公用资源目录(图片,ico)
│   ├── components          // 公共组件
│   ├── directive           // 全局自定义指令
│   ├── layout              // 全局 layout
│   ├── main.js             // 项目的核心文件
│   ├── permission.js       // 页面是否登录判断权限判断,权限白名单
│   ├── router              // 路由
│   ├── settings.js         // 全局配置 
│   ├── store               // 全局 store管理
│   ├── utils               // 全局公用方法
│   └── views               // views 所有页面
│       ├── ...
│       ├── login.vue       // 登录页面
│       ├── redirect.vue    // 重定向
│       └── vadmin          // dvadmin专有视图,建议不要修改或新增内容
│   ├── .env.development    // 开发环境配置
│   ├── .env.staging        // 预发布环境配置
│   ├── .env.production     // 生产环境配置
└── vue.config.js           // 本地跨域代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 后端项目结构

├── application                     // 工程名称
│   ├── celery.py                   // celery 配置
│   ├── settings.py                 // 项目的settings配置
│   ├── urls.py                     // 项目主URL对应关系
│   ├── uwsgi.ini                   // uwsgi配置
│   └── wsgi.py                     // wsgi 配置
├── apps                            // 项目的所有apps
│   └── vadmin                      // dvadmin 框架封装的apps,建议不要修改或新增内容
│       ├── op_drf                  // 二次封装定制 drf 
│       │   ├── apps.py             
│       │   ├── fields.py               // 封装常用的 Field
│       │   ├── filters.py              // 常用的过滤器以及DRF的过滤器
│       │   ├── generics.py
│       │   ├── logging                 // 基于View视图的日志
│       │   ├── middleware.py           // 日志、权限中间件
│       │   ├── mixins.py               // 继承、增强DRF的CreateModelMixin, 标准化其返回值
│       │   ├── models.py               // 核心标准抽象模型模型
│       │   ├── pagination.py           // 重写分页器
│       │   ├── response.py             // 重写 response 返回信息
│       │   ├── result.py
│       │   ├── serializers.py          // 重写序列化器
│       │   ├── urls.py             
│       │   ├── validator.py            // 重写校验器返回字段,防止字段暴露
│       │   ├── views.py                // 重写视图 继承、增强DRF的APIView
│       │   └── viewsets.py
│       ├── monitor                 // 系统管理 App
│       │   ├── admin.py            // Django为我们提供的后台管理(dvadmin不使用)
│       │   ├── apps.py             // 配置当前app信息
│       │   ├── filters.py          // app的过滤器
│       │   ├── migrations          // 迁移文件
│       │   ├── models              // models 模型
│       │   │   ├── monitor.py      // 服务器监控信息 模型
│       │   │   ├── server.py       // 服务器信息 模型
│       │   │   └── sys_files.py    // 系统磁盘 模型
│       │   ├── serializers.py      // 序列化器
│       │   ├── tasks.py            // 异步定时任务
│       │   ├── tests.py            // 单元测试
│       │   ├── urls.py             // url 
│       │   └── views.py            // 视图
│       ├── celery                  // 定时任务 App
│       ├── permission              // 权限管理 App
│       ├── template                // 模板App,方面快速的创建app
│       ├── scripts                 // sql 语句,用来初始化
│       ├── settings.py             // 专属dvadmin 配置(后期私有化配置不影响全局)
│       ├── system                  // 系统管理 App
│       ├── urls.py                 // 专属dvadmin 路由
│       └── utils                   // 框架常用封装(后期会去掉放op_drf中)
│           ├── authentication.py       // 常用的认证以及DRF的认证
│           ├── backends.py             // Django原生认证方式
│           ├── decorators.py           // 常用的装饰器以及DRF的装饰器
│           ├── exceptions.py           // 统一异常拦截处理
│           ├── export_excel.py         // Excel导出封装
│           ├── file_util.py            // 封装文件操作,递归读取所有文件目录形成列表/递归删除空目录/批量删除文件
│           ├── jsonpath_util.py        // json 路径操作
│           ├── jwt_util.py             // JWT配置, 重写JWT的返回值/重写JWT的secret的生成
│           ├── login.py                // 登录 校验验证码/日志保存
│           ├── model_util.py           // 有关模型操作,获取模型的主键列对应的Field/根据App、Model名称获取model_class/递归获取部门的所有下级部门/ORM模型对象转化为字典...
│           ├── request_util.py         // 获取Request请求工具类,获取请求user/获取请求IP/获取请求参数/获取请求路径/获取浏览器名/获取操作系统/获取ip 登录位置/获取 verbose_name
│           ├── response.py             // 常用的Response以及Django的Response、DRF的Response
│           ├── sort_util.py            // 封装排序,普通类型列表的排序/字典列表的排序/对象列表的排序
│           └── string_util.py          // 封装字符串相关函数:UUID字符串,字符串加密解密
├── conf                                // 配置信息
│   ├── env.example.py                  // 配置信息模板
│   └── env.py                          // 自行根据 env.example.py 复制重命名为env.py ,系统只会去读取env.py配置
├── docker_celery.sh                    // docker 启动 celery 脚本
├── docker_start.sh                     // docker 启动 django 脚本
├── logs                                // 日志存放位置
├── manage.py
├── media                               // 上传的文件存放位置
├── requirements.txt                    // 项目环境依赖
└── static                              // 静态文件
    └── rest_framework                  // rest_framework 静态文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# Docker 目录

├── celery                              // 后端 celery 容器配置目录
│   ├── Dockerfile                      // 后端 celery Dockerfile
│   └── build.sh                        // 后端 celery build配置
├── django                              // 后端 django 容器配置目录
│   ├── Dockerfile                      // 后端 django Dockerfile
│   └── build.sh                        // 后端 django build配置
├── mysql                               // Mysql 数据库容器配置目录
│   ├── conf.d                          // 数据库配置
│   │   └── my.cnf                      // 数据库 my.cnf 配置
│   ├── data                            // 数据库数据
│   ├── launch.sh                           
│   └── logs                            // 数据库日志
├── redis                               // redis 容器配置目录
│   ├── data                            // redis数据
│   ├── launch.sh
│   └── redis.conf                      // redis 配置
└── vue-ui                              // 前端 库容器配置目录
    └── Dockerfile                      // 前端 Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 配置文件

# 前端配置

配置路径 dvadmin-ui/.env.development

# 开发环境配置
ENV = 'development'

# 若依管理系统/开发环境
# VUE_APP_BASE_API = 'https://api.django-vue-admin.com'
VUE_APP_BASE_API = 'http://127.0.0.1:8000'

# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

# 前端端口
PORT=8080

# 系统名称
VUE_APP_TITLE = 'dvAdmin管理系统'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 后端配置

配置路径 dvadmin-backend/conf/env.example.py

# ================================================= #
# ************** mysql数据库 配置  ************** #
# ================================================= #
# 数据库类型 MYSQL/SQLITE3
DATABASE_TYPE = "MYSQL"
# 数据库地址
DATABASE_HOST = "127.0.0.1"
# 数据库端口
DATABASE_PORT = 3306
# 数据库用户名
DATABASE_USER = "root"
# 数据库密码
DATABASE_PASSWORD = "q1w2e3r4T%Y^U&MYSQL"
# 数据库名
DATABASE_NAME = "django-vue-admin"

# ================================================= #
# ************** redis 数据库配置  ************** #
# ================================================= #
# 是否启用Redis缓存
# 注:不使用redis则无法使用celery
REDIS_ENABLE = True
REDIS_DB = 1
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
REDIS_PASSWORD = 'q1w2e3r4T%Y^U&'
# celery 定时任务redis 库号
CELERY_DB = 2

# ================================================= #
# ************** 默认配置  ************** #
# ================================================= #
# 只允许访问的ip地址列表
ALLOWED_HOSTS = ['*']
# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
# 允许ajax请求携带cookie
CORS_ALLOW_CREDENTIALS = False
# 验证码状态
CAPTCHA_STATE = True
# 操作日志配置
API_LOG_ENABLE = True
API_LOG_METHODS = ['POST', 'DELETE', 'PUT'] # 'ALL' or ['POST', 'DELETE']
# 接口权限
INTERFACE_PERMISSION = True
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# Docker 配置

待开发...