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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
详解如何设置Python环境变量?
May 13 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
pytorch常见的Tensor类型详解
Jan 15 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
Django封装交互接口代码
Jul 12 Python
python使用列表的最佳方案
Aug 12 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 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
拼音码表的生成
2006/10/09 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
浅谈flask源码之请求过程
2018/07/26 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python grpc超时机制代码示例
2020/09/14 Python
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
团组织关系介绍信
2014/01/12 职场文书
打架检讨书400字
2014/01/17 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
小学教师读书活动总结
2014/07/08 职场文书
财务人员个人工作总结
2015/02/27 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL