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保存网页上的图片或者保存页面为截图
Mar 05 Python
python+django加载静态网页模板解析
Dec 12 Python
python中int与str互转方法
Jul 02 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python中new方法的详解
Jan 15 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP中的日期及时间
2006/11/23 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP图片加水印实现方法
2016/05/06 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
Javascript中string转date示例代码
2013/11/01 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
解析Vue 2.5的Diff算法
2017/11/28 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
vue实现城市列表选择功能
2018/07/16 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python向excel中写入数据的方法
2019/05/05 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
女大学生自我鉴定
2013/12/09 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB