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

yipeiwu_com5年前Python基础

一 前期说明:

我运行项目的环境是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 登陆页面展示

2 admin用户展示页面

3 运维展示页面


4 开发展示页面

5 测试展示页面


6 产品展示页面

发布代码

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

添加效果如下所示:

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

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

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

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

发布成功效果,

去浏览器里面验证效果:

回滚代码

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

回滚效果

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python序列对象与String类型内置方法详解

本文实例讲述了Python序列对象与String类型内置方法。分享给大家供大家参考,具体如下: 前言 在Python数据结构篇中介绍了Python的序列类型数据结构,这次继续深入的学习序...

Python multiprocess pool模块报错pickling error问题解决方法分析

本文实例讲述了Python multiprocess pool模块报错pickling error问题解决方法。分享给大家供大家参考,具体如下: 问题 之前在调用class内的函数用mu...

IronPython连接MySQL的方法步骤

原以为在IronPython中使用MySQL是一件很容易的事情,即使有麻烦,也可以改变路径,加载Python下的MySQL模块。事实证明,这是我一厢情愿的想法。要想在IronPython...

pytyon 带有重复的全排列

复制代码 代码如下:from sys import argvscript, start, end = argvvis = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...

浅谈tensorflow中几个随机函数的用法

如下所示: tf.constant(value, dtype=None, shape=None) 创建一个常量tensor,按照给出value来赋值,可以用shape来指定其形状...