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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
python监控文件并且发送告警邮件
Jun 21 Python
python skimage 连通性区域检测方法
Jun 21 Python
django迁移数据库错误问题解决
Jul 29 Python
python numpy数组复制使用实例解析
Jan 10 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
学python爬虫能做什么
Jul 29 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php 删除记录实现代码
2009/03/12 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
JavaScript实现筛选数组
2021/03/02 Javascript
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python计算N天之后日期的方法
2015/03/31 Python
讲解Python中的递归函数
2015/04/27 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python实现电子词典
2020/03/03 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
什么是Rollback Segment
2013/04/22 面试题
工商学院毕业生个人自我评价
2013/09/19 职场文书
自我鉴定总结
2014/03/24 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
大四学生个人总结
2015/02/15 职场文书
签订劳动合同通知书
2015/04/16 职场文书
关于倡议书的范文
2015/04/29 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
pytorch中的numel函数用法说明
2021/05/13 Python
详解Vue的options
2021/05/15 Vue.js
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android