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中使用pprint函数进行格式化输出的教程
Apr 07 Python
用Python实现随机森林算法的示例
Aug 24 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
Python探索之爬取电商售卖信息代码示例
Oct 27 Python
python基础练习之几个简单的游戏
Nov 10 Python
vscode 远程调试python的方法
Dec 01 Python
TensorFlow实现卷积神经网络
May 24 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
python 发送json数据操作实例分析
Oct 15 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
详细探究Python中的字典容器
2015/04/14 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Django用户身份验证完成示例代码
2020/04/03 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
秋季运动会广播稿大全
2014/02/17 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
你需要掌握的20个Python常用技巧
2022/02/28 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP