使用django实现一个代码发布系统


Posted in Python onJuly 18, 2019

一 前期说明:

我运行项目的环境是nginx+php,存储代码用的是gitlab,

python版本:3.6 django版本:2.2.1 mysql版本:5.7

二 大体思路

1 需要知道主机的用户名,密码,端口号,

2 需要知道gitlab的用户名和密码

3 我准备把上面两条的信息,存储到当前登录用户的session中。

三实现功能

1 针对单个主机发布和回滚代码

2 可以批量发布和回滚代码

3角色分为管理员,开发,运维,测试,产品几个角色,每个角色返回不同的页面,利用rbac基于角色去实现不同的权限

4 管理员拥有所有权限,可以添加编辑,删除所有的东西

5 分页功能和快速搜索功能

6 当开发申请一个上线单,会邮件通知相关的运维和测试,以及项目负责人去审核。

四效果展示

针对不同的用户展示不同的页面

1 登陆页面展示

使用django实现一个代码发布系统

2 admin用户展示页面

使用django实现一个代码发布系统

3 运维展示页面

使用django实现一个代码发布系统

4 开发展示页面

使用django实现一个代码发布系统

5 测试展示页面

使用django实现一个代码发布系统

6 产品展示页面

使用django实现一个代码发布系统

发布代码

1 找到项目列表,添加你所需要的一个项目,包括仓库地址,选择这个项目要发布到那台主机上面

使用django实现一个代码发布系统

添加效果如下所示:

使用django实现一个代码发布系统

2 添加完成之后,点击上线按钮,如下所示,添加一个指定的分支,然后点击获取代码,

使用django实现一个代码发布系统

3 拉完代码之后,点击发布代码,在发布代码之前,我先去gitlab上面去编辑一个html文件

如下所示:里面还包含了一张北魏时期的地图,哈哈

使用django实现一个代码发布系统

然后我点发布,如下所示,选中你要发布的主机

使用django实现一个代码发布系统

发布成功效果,

使用django实现一个代码发布系统

去浏览器里面验证效果:

使用django实现一个代码发布系统

回滚代码

还是找的项目列表,点击回滚按钮,如下所示:

使用django实现一个代码发布系统

回滚效果

使用django实现一个代码发布系统

使用django实现一个代码发布系统

代码我放到了github上面 ,git clone -b deploy_7-4

第一次写还有很多不足,希望互相学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的reduce内建函数使用方法指南
Aug 31 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
Python实现数据库编程方法详解
Jun 09 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
详解python单元测试框架unittest
Jul 02 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
浅谈python锁与死锁问题
Aug 14 Python
Python基础 括号()[]{}的详解
Nov 07 Python
python 将字符串中的数字相加求和的实现
Jul 18 #Python
TensorFlow实现简单的CNN的方法
Jul 18 #Python
windows上安装python3教程以及环境变量配置详解
Jul 18 #Python
Django 开发环境配置过程详解
Jul 18 #Python
解决Django中多条件查询的问题
Jul 18 #Python
python openpyxl使用方法详解
Jul 18 #Python
Python Django基础二之URL路由系统
Jul 18 #Python
You might like
PHP中的串行化变量和序列化对象
2006/09/05 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python如何从文件读取数据及解析
2019/09/19 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
python opencv肤色检测的实现示例
2020/12/21 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
技术总监的工作职责
2013/11/13 职场文书
遗嘱继承公证书
2014/04/09 职场文书
家长会标语
2014/06/24 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
2015年教师节感言
2015/08/03 职场文书
详解JAVA的控制语句
2021/11/11 Java/Android
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python