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实现的解析crontab配置文件代码
Jun 30 Python
Python open()文件处理使用介绍
Nov 30 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
详解Python Socket网络编程
Jan 05 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
python实现七段数码管和倒计时效果
Nov 23 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
Python 去除字符串中指定字符串
Mar 05 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 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
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
个人自我鉴定范文
2013/10/04 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
课程设计的心得体会
2014/09/03 职场文书
上课说话检讨书500字
2014/11/01 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS