Python如何操作docker redis过程解析


Posted in Python onAugust 10, 2020

使用操作命令借助subprocess模块进行操作

#encoding:utf-8
import subprocess
def cmd(command):
  subp = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")
  subp.wait(2)
  if subp.poll() == 0:
    return subp.communicate()
  else:
    return None
获取redis键所对应的值

def get_output(command):
  subp = subprocess.getoutput(command)
  return subp

flask框架获取docker里面redis中的键值对

@ui_case_set.route("/get_code", methods=["GET"])
@allow_cross_domain
def get_code():
  set_id = request.values.get("id")
  if not set_id:
    return response_fail(msg="缺少参数用例集id")
  key_name = "key" + str(set_id)
  value_name = get_output("docker exec {0} redis-cli get {1}".format(DockerConfig.container_redis_name, key_name))
  if value_name:
    return response_fail(msg="此测试集正被{}编辑!".format("金刚"))
  else:
    return response_success(msg="可以进行编辑!")

flask框架增加及删除docker里面redis中的键值对

@ui_case_set.route("/time_limit", methods=["POST"])
@allow_cross_domain
def set_time():
  # lock:为1:上锁, 为0时: 解锁
  set_id = request.json.get("id")
  locak = request.json.get("lock")
  # if not all([set_id, locak]):
  #   return response_fail(msg="参数不足")
  key_name = "key" + str(set_id)
  if locak == 1:
    value_name = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    cmd("docker exec {0} redis-cli setex {1} 300 '{2}'".format(DockerConfig.container_redis_name, key_name, value_name))
    return response_success(content={"lock_status": 1}, msg="测试集{}上锁成功".format(set_id))
  else:
    cmd("docker exec {0} redis-cli del {1}".format(DockerConfig.container_redis_name, key_name))
    return response_success(content={"lock_status": 0}, msg="测试集{}解锁成功".format(set_id))

注意点: 使用操作命令时不要带 “-it",如(docker exec -it ui_redis(docker容器名称) redis-cli set key vale) 否则接口在前台运行方式下是可以正常访问的,在python程序后台运行下运行失败。因为 指定 -it 是需要开启一个交互模式的终端。

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

Python 相关文章推荐
Python splitlines使用技巧
Sep 06 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
使用python 3实现发送邮件功能
Jun 15 Python
在Python中增加和插入元素的示例
Nov 01 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python如何保证输入键入数字的方法
Aug 23 Python
浅谈Python type的使用
Nov 19 Python
如何使用python写截屏小工具
Sep 29 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
基于Python实现下载网易音乐代码实例
Aug 10 #Python
Python grequests模块使用场景及代码实例
Aug 10 #Python
基于Python pyecharts实现多种图例代码解析
Aug 10 #Python
Python Celery异步任务队列使用方法解析
Aug 10 #Python
使用Python将语音转换为文本的方法
Aug 10 #Python
Python获取excel内容及相关操作代码实例
Aug 10 #Python
Python利用命名空间解析XML文档
Aug 10 #Python
You might like
德生PL330测评
2021/03/02 无线电
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
Python WSGI的深入理解
2018/08/01 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
数控专业个人求职信范例
2013/11/29 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
教师暑期培训感言
2014/08/15 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers