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实现bitmap数据结构详解
Feb 17 Python
Web服务器框架 Tornado简介
Jul 16 Python
Python列表计数及插入实例
Dec 17 Python
python技能之数据导出excel的实例代码
Aug 11 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
python代码实现扫码关注公众号登录的实战
Nov 01 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python编程之序列操作实例详解
2017/07/22 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
简单了解django文件下载方式
2020/02/10 Python
python实现超级玛丽游戏
2020/03/18 Python
python实现同一局域网下传输图片
2020/03/20 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
详解python中的异常捕获
2020/12/15 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
shell程序中如何注释
2012/02/17 面试题
玲玲的画教学反思
2014/02/04 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
市场督导岗位职责
2015/04/10 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
中秋节主题班会
2015/08/14 职场文书
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers