# 简介
新增了base分支,base分支只包括后端,其在master分支的后端基础上进行了重新编写,拥有更完善的权限控制、工作流引擎、运维管理、websocket支持并提供多种常用功能集成到utils中.
后期功能变动将以base分支为主,master分支只做兼容性处理,具体可切换至base分支查看
## 下面为master分支介绍
基于RBAC模型权限控制的中小型应用的基础开发平台,前后端分离,后端采用django+django-rest-framework,前端采用vue+ElementUI,移动端采用uniapp+uView(可发布h5和小程序).
JWT认证,可使用simple_history实现审计功能,支持swagger
内置模块有组织机构\用户\角色\岗位\数据字典\文件库\定时任务\工作流(已上传大部分代码, 后端代码位于apps/wf)
使用工作流建议数据库用Postgresql, 下面的预览环境因为是用的sqlite因此有些json查询不支持, 使用方法可参考loonflow文档基本是一致, 主要是做了简化
支持功能权限(控权到每个接口)和简单的数据权限(全部、本级及以下、同级及以下、本人等)
欢迎提issue
## 部分截图
![image](https://github.com/caoqianming/django-vue-admin/blob/master/img/user.png)
![image](https://github.com/caoqianming/django-vue-admin/blob/master/img/dict.png)
![image](https://github.com/caoqianming/django-vue-admin/blob/master/img/task.png)
## 预览地址
预览地址直接使用的runserver,账户admin,密码admin。请谨慎操作,勿修改密码
<http://49.232.29.236:2222/>
## 启动(以下是在windows下开发操作步骤)
### django后端
定位到server文件夹
建立虚拟环境 `python -m venv venv`
激活虚拟环境 `.\venv\scripts\activate`
安装依赖包 `pip install -r requirements.txt`
复制server文件夹下的conf_e.py为conf.py
根据需要修改里面的数据库连接及DEBUG参数
同步数据库 `python manage.py migrate`
可导入初始数据 `python manage.py loaddata db.json` 或直接使用sqlite数据库(超管账户密码均为admin,每隔一段时间数据库会重置)
创建超级管理员 `python manage.py createsuperuser`
运行服务 `python manage.py runserver 8000`
### vue前端
定位到client文件夹
安装node.js
安装依赖包 `npm install --registry=https://registry.npm.taobao.org`
运行服务 `npm run dev`
### nginx
本地跑时修改nginx.conf,可显示资源文件
```
listen 8012
location /media {
proxy_pass http://localhost:8000;
}
location / {
proxy_pass http://localhost:9528;
}
```
运行nginx.exe
### 运行
打开localhost:8012即可访问
接口文档 localhost:8000/api/swagger/
后台地址 localhost:8000/django/admin/
## 部署
部署时注意修改conf.py
可以前后端分开部署, nginx代理。也可打包之后将前端dist替换server/dist, 然后执行collectstatic
使用gunicorn启动: 进入虚拟环境执行 gunicorn -w 5 -b 0.0.0.0:2251 server.wsgi
如果需要webscoket还需要配置daphne启动,可使用supervisor监控
Nginx配置可参考如下:
```
server {
listen 2250;
client_max_body_size 1024m;
location /media/ {
alias /home/lighthouse/xx/media/;
limit_rate 800k;
}
location / {
alias /home/lighthouse/xx/dist/;
index index.html;
}
location ~ ^/(api|django)/ {
set $CSRFTOKEN "";
if ($http_cookie ~* "CSRFTOKEN=(.+?)(?=;|$)") {
set $CSRFTOKEN "$1";
}
proxy_set_header X-CSRFToken $CSRFTOKEN;
proxy_pass http://localhost:2251;
proxy_pass_header Authorization;
proxy_pass_header WWW-Authenticate;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ws/ {
proxy_pass http://localhost:2252;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
```
### docker-compose 方式运行
前端 `./client` 和后端 `./server` 目录下都有Dockerfile,如果需要单独构建镜像,可以自行构建。
这里主要说docker-compose启动这种方式。
按照注释修改docker-compose.yml文件。里面主要有两个服务,一个是`backend`后端,一个是`frontend`前端。
默认是用开发模式跑的后端和前端。如果需要单机部署,又想用docker-compose的话,改为生产模式性能会好些。
启动
```
cd <path-to-your-project>
docker-compose up -d
```
启动成功后,访问端口同前面的,接口8000端口,前端8012端口,如需改动,自己改docker-compose.yml
如果要执行里面的命令
docker-compose exec <服务名> <命令>
举个栗子:
如果我要执行后端生成数据变更命令。`python manage.py makemigrations`
则用如下语句
```
docker-compose exec backend python manage.py makemigrations
```
### 理念
首先得会使用django-rest-framework, 理解vue-element-admin前端方案
本项目采用前端路由,后端根据用户角色读取用户权限代码返回给前端,由前端进行加载(核心代码是路由表中的perms属性以及checkpermission方法)
后端功能权限的核心代码在server/apps/system/permission.py下重写了has_permission方法, 在APIView和ViewSet中定义perms权限代码
数据权限因为跟具体业务有关,简单定义了几个规则,重写了has_object_permission方法;根据需要使用即可
由于实际情况比较复杂,这里建议根据不同情况自己写drf的permission_class
### 关于定时任务
使用celery以及django_celery_beat包实现
需要安装redis并在默认端口启动, 并启动worker以及beat
进入虚拟环境并启动worker: `celery -A server worker -l info -P eventlet`, linux系统不用加-P eventlet
进入虚拟环境并启动beat: `celery -A server beat -l info`
### 工作流
工作流模块参考loonflow的实现可查看其文档(逻辑一样, 感谢loonflow)
目前大部分代码已上传, 可查看swagger
### 微信群
愿意交流的话可以加微信群
![image](http://49.232.29.236:2222/media/wechat_group.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 高分项目 基于Python+Django+Vue前后端分离的RBAC模型权限控制系统.源码+部署文档+全部数据资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
高分项目 基于Python+Django+Vue前后端分离的RBAC模型权限控制系统.源码+部署文档+全部数据资料.zip (556个子文件)
iconfont.css 79KB
.env.development 558B
Dockerfile 586B
Dockerfile 216B
Dockerfile_dev 251B
.editorconfig 243B
.eslintignore 34B
.gitattributes 31B
.gitignore 192B
.gitignore 190B
.gitignore 112B
.gitignore 59B
.gitignore 13B
template.h5.html 1KB
index.html 620B
favicon.ico 66KB
favicon.ico 4KB
wechat_group.jpg 145KB
area.js 122KB
classify.data.js 35KB
async-validator.js 33KB
weCropper.js 31KB
vue-i18n.min.js 25KB
MpHtmlParser.js 18KB
city.js 14KB
md5.js 12KB
index.list.js 11KB
touch-emulator.js 11KB
components.config.js 9KB
index.js 9KB
index.js 8KB
index.js 6KB
Export2Excel.js 5KB
.eslintrc.js 5KB
workflow.js 5KB
index.js 4KB
test.js 4KB
vue.config.js 4KB
colorGradient.js 4KB
route.js 3KB
CssHandler.js 3KB
index.js 3KB
Breadcrumb.spec.js 3KB
http.interceptor.js 3KB
config.js 2KB
js.config.js 2KB
permission.js 2KB
request.js 2KB
user.js 2KB
timeFormat.js 2KB
emitter.js 2KB
mock-server.js 2KB
index.js 2KB
guid.js 2KB
scroll-to.js 2KB
getParent.js 2KB
mixin.js 2KB
template.config.js 2KB
timeFrom.js 2KB
user.js 2KB
queryParams.js 1KB
main.js 1KB
permission.js 1KB
province.js 1KB
ResizeHandler.js 1KB
adaptive.js 1KB
main.js 1KB
user.js 1KB
formatTime.spec.js 1KB
app.js 1KB
dict.js 1KB
http.api.js 993B
parseTime.spec.js 981B
type2icon.js 976B
en.js 958B
index.js 892B
debounce.js 881B
color.js 856B
deepMerge.js 789B
$parent.js 777B
throttle.js 770B
$u.mixin.js 769B
jest.config.js 766B
task.js 747B
zh.js 718B
validate.spec.js 703B
permission.js 697B
deepClone.js 658B
org.js 654B
Hamburger.spec.js 641B
FixiOSBug.js 633B
SvgIcon.spec.js 621B
role.js 603B
Export2Zip.js 602B
uview.config.js 557B
table.js 538B
position.js 528B
settings.js 524B
perm.js 516B
moritor.js 492B
共 556 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
- R2152024-05-21资源很实用,对我启发很大,有很好的参考价值,内容详细。
不走小道
- 粉丝: 3221
- 资源: 5113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功