# 简介
新增了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/ticket.png)
![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.npmmirror.com`
运行服务 `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
### 微信群
愿意交流的话
可以加QQ群 235665873
可以加微信群
![image](http://49.232.29.236:2222/media/wechat_group.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
基于RBAC模型权限控制的中小型应用的基础开发平台前后端分离后端采用djangodjangorestframework前.zip
共582个文件
vue:254个
js:108个
py:65个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 142 浏览量
2024-12-04
08:14:07
上传
评论
收藏 5.34MB ZIP 举报
温馨提示
是的第一步 重点:所有项目都有sql文件,比其他博主项目要严谨一万倍所有项目本人亲自测试可运行使用!!有任何问题私我解决! 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 求注关 所有9.9的项目,企业项目都有SQL文件,购买后运行部署可联系包你满意。不容易啊,谢谢大家支持!!
资源推荐
资源详情
资源评论
收起资源包目录
基于RBAC模型权限控制的中小型应用的基础开发平台前后端分离后端采用djangodjangorestframework前.zip (582个子文件)
client\Dockerfile 222B
client\Dockerfile_dev 258B
client\LICENSE 1KB
client_mp\LICENSE 1KB
client_mp\uview-ui\LICENSE 1KB
client_mp\uview-ui\iconfont.css 79KB
client\.env.development 572B
client\.editorconfig 257B
client\.eslintignore 38B
.git\config 314B
.git\description 73B
.git\HEAD 23B
.git\index 66KB
.git\info\exclude 240B
.git\logs\HEAD 202B
.git\logs\refs\heads\master 202B
.git\logs\refs\remotes\origin\HEAD 202B
.git\packed-refs 390B
.git\refs\heads\master 41B
.git\refs\remotes\origin\HEAD 32B
.gitattributes 32B
server\.gitignore 206B
client\.gitignore 206B
.gitignore 120B
client_mp\.gitignore 62B
server\log\.gitignore 14B
client_mp\template.h5.html 2KB
client\public\index.html 637B
client\public\favicon.ico 66KB
client_mp\static\uview\common\favicon.ico 4KB
.git\objects\pack\pack-79bb3e74cc8ec6c3397c55c40e206e29ecd3b1f9.idx 69KB
img\wechat_group.jpg 145KB
client_mp\uview-ui\libs\util\area.js 122KB
client_mp\common\classify.data.js 36KB
client_mp\uview-ui\libs\util\async-validator.js 34KB
client_mp\uview-ui\components\u-avatar-cropper\weCropper.js 32KB
client_mp\common\vue-i18n.min.js 25KB
client_mp\uview-ui\components\u-parse\libs\MpHtmlParser.js 19KB
client_mp\uview-ui\libs\util\city.js 14KB
client_mp\uview-ui\libs\function\md5.js 12KB
client_mp\common\index.list.js 12KB
client_mp\static\common\js\touch-emulator.js 11KB
client_mp\pages\example\components.config.js 10KB
client\src\utils\index.js 9KB
client\src\router\index.js 8KB
client_mp\uview-ui\libs\request\index.js 6KB
client\src\vendor\Export2Excel.js 5KB
client\.eslintrc.js 5KB
client\src\api\workflow.js 5KB
client_mp\uview-ui\index.js 4KB
client_mp\uview-ui\libs\function\test.js 4KB
client\vue.config.js 4KB
client_mp\uview-ui\libs\function\colorGradient.js 4KB
client_mp\uview-ui\libs\function\route.js 4KB
client_mp\uview-ui\components\u-parse\libs\CssHandler.js 3KB
client_mp\store\index.js 3KB
client\tests\unit\components\Breadcrumb.spec.js 3KB
client_mp\common\http.interceptor.js 3KB
client_mp\uview-ui\components\u-parse\libs\config.js 3KB
client_mp\pages\example\js.config.js 2KB
client\src\utils\request.js 2KB
client\src\permission.js 2KB
client\src\store\modules\user.js 2KB
client_mp\uview-ui\libs\function\timeFormat.js 2KB
client_mp\uview-ui\libs\util\emitter.js 2KB
client\mock\mock-server.js 2KB
client\mock\index.js 2KB
client_mp\uview-ui\libs\function\guid.js 2KB
client\src\utils\scroll-to.js 2KB
client_mp\uview-ui\libs\function\getParent.js 2KB
client_mp\pages\example\template.config.js 2KB
client_mp\uview-ui\libs\mixin\mixin.js 2KB
client_mp\uview-ui\libs\function\timeFrom.js 2KB
client\mock\user.js 2KB
client_mp\uview-ui\libs\function\queryParams.js 2KB
client_mp\main.js 2KB
client\src\store\modules\permission.js 1KB
client_mp\uview-ui\libs\util\province.js 1KB
client\src\layout\mixin\ResizeHandler.js 1KB
client\src\directive\el-table\adaptive.js 1KB
client\src\main.js 1KB
client\src\api\user.js 1KB
client\src\store\modules\app.js 1KB
client\tests\unit\utils\formatTime.spec.js 1KB
client\src\api\dict.js 1KB
client_mp\common\http.api.js 1014B
client_mp\uview-ui\libs\function\type2icon.js 1011B
client\tests\unit\utils\parseTime.spec.js 1009B
client_mp\common\locales\en.js 978B
client\build\index.js 927B
client_mp\uview-ui\libs\function\debounce.js 910B
client_mp\uview-ui\libs\function\color.js 892B
client_mp\uview-ui\libs\function\deepMerge.js 818B
client_mp\uview-ui\libs\function\throttle.js 802B
client_mp\store\$u.mixin.js 795B
client_mp\uview-ui\libs\function\$parent.js 794B
client\src\api\task.js 791B
client\jest.config.js 790B
client_mp\common\locales\zh.js 738B
client\src\utils\permission.js 724B
共 582 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
普通网友
- 粉丝: 1607
- 资源: 6778
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 白色简洁风的行政文化企业司网站模板下载.zip
- 白色简洁风的设计企业网站模板下载.zip
- 白色简洁风的新闻杂志类企业网站模板下载.zip
- 白色简洁风的运动鞋商城网站模板下载.zip
- 白色简洁风格的8种表单信息源码下载.zip
- 白色简洁风格的App后台管理源码下载.zip
- 白色简洁风格的APP设计公司企业网站模板.rar
- 白色简洁风格的APP介绍整站网站源码下载.zip
- 白色简洁风格的app手机应用整站网站模板.zip
- 白色简洁风格的HTML设计企业网站模板.zip
- 白色简洁风格的APP展示动态源码下载.zip
- 白色简洁风格的IT研发团队商务模板.zip
- 白色简洁风格的SPA香薰美容整站网站源码下载.zip
- 白色简洁风格的暗夜登录框源码下载.zip
- 白色简洁风格的UIDesign设计公司企业网站模板.rar
- 白色简洁风格的安卓游戏卡通动漫人物整站网站模板.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功