1、设置webhook

gitlab->setting->webhook:http://121.143.191.166:7000?token=23028-b396-12e5-9912-bae0483c18

2、设置django
注释掉下列所示一行,关闭CSRF

MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

3、添加路由:

url(r'^$',"buServer.views.index",name='index'),

4、添加view:

import datetime
import time
import json
import os def now():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") def index(request):
try:
token=request.GET['token']
except KeyError:
#验证用户是否登录
if request.session.get("user") is not None:
return HttpResponseRedirect("/home")
else:
return render(request, 'login.html') if token !="230a1428-b396-12e5-9912-ba1be0483c18":
return render(request, 'result.html', {'result': "token is not right."}) if request.method == 'POST':
json_data = json.loads(request.body)
ver=json_data["ref"].split('/')[2]
out=open("/tmp/tts.log",'a')
out.write("post:"+ver+'\n')
out.close()
if ver=="devlop":
val1 = os.popen("/data/release_docker.sh develop").read()
out.write(now())
return HttpResponse(json_data)
else:
val1 = os.popen("/data/release_docker.sh develop").read()
return render(request, 'result.html', {'result': val1})

gitlab和Django实现push自动更新的更多相关文章

  1. Jenkins和Gitlab CI/CD自动更新k8s中pod使用的镜像说明

    Jenkins 使用Jenkins的话,完成的工作主要有如下步骤: 1.从Gogs或Gitlab仓库上拉取代码 2.使用Maven编译代码,打包成jar文件 3.根据jar文件使用相对应的Docker ...

  2. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  3. 配置GitLab Push 自动触发Jenkins构建

    配置GitLab Push 自动触发Jenkins构建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客是对之前的笔记:https://www.cnblogs.com/yin ...

  4. Django的auto_now=True没有自动更新

    auto_now=True自动更新,有一个条件,就是要通过django的model层. 如create或是save方法. 如果是filter之后update方法,则直接调用的是sql,不会通过mode ...

  5. 实现Django ORM admin view中model字段choices取值自动更新的一种方法

    有两个表,一个是记录网站信息的site表,结构如下: CREATE TABLE `site` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `name` ) N ...

  6. django orm 更新数据时间不自动更新问题

    gmt_create自动添加auto_now_add:gmt_modify自动更新auto_now class CommonInfo(models.Model): """ ...

  7. 带你入门SpringCloud 之 通过SpringCloud Bus 自动更新配置

    前言 在<带你入门SpringCloud统一配置 | SpringCloud Config>中通过 SpringCloud Config 完成了统一配置基础环境搭建,但是并没有实现配置修改 ...

  8. 分析nuget源码,用nuget + nuget.server实现winform程序的自动更新

    源起 (个人理解)包管理最开始应该是从java平台下的maven开始吧,因为java的开发大多数是基于开源组件开发的,一个开源包在使用时很可能要去依赖其他的开源包,而且必须是特定的版本才可以.以往在找 ...

  9. 利用github webhook 结合openresty自动更新静态博客

    使用hexo在github pages上弄了一个静态博客,后来觉得访问有点慢,于是放到自己vps上. 对于静态博客的部署非常简单,本来就是html,js,css等静态文件,只要nginx上配置下目录就 ...

随机推荐

  1. 内联样式自动出现,一般是js控制写入的

    内联样式自动出现,一般是js控制写入的

  2. mysql 查看最大连接数 设置最大连接数

    方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改为 max_connections=1000 服务里重起MY ...

  3. SSDB

    一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 特性 替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ 开发 Re ...

  4. 你了解System.out.println()的真正含义吗?

    在Java编程中,我们常常用 System.out.println(); 来输出字符串,也许我们都已经猜到println()是方法名,但System是什么,out又是什么呢? 其实System是jav ...

  5. linux 命令之系统活动报告sar

    打开自己的CentOS,敲入“sar”,表示很失望: [root@localhost ~]# sar bash: sar: command not found 竟然没有安装,不过还好linux下安装还 ...

  6. IDEA快捷键大全

    IntelliJ Idea 常用快捷键列表 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Sh ...

  7. HDP2.4安装(二):Centos7配置

    Centos7 Minimal Install 安装完成后是不支持上网的,并且大部分常用的软件也未安装,首先要解决的问题就是网络配置.当网络配通后,即可通过Xshell或其它工具来远程进行操作与管理, ...

  8. Android 查看內存使用

    一.使用dumpsys meminfo命令 1.使用dumpsys meminfo查看内存使用情况 2.过滤某个进程可以使用 dumpsys meminfo | grep -i phone 二,使用t ...

  9. smarty变量调节器案例

    要求: 如下图,有内容的每一行,当鼠标放上去显示灰色区域,当鼠标离开灰色区域消失

  10. HTML页面上获取鼠标的位置(备忘)

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...