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处理json数据中的中文
Mar 06 Python
Python性能优化的20条建议
Oct 25 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
Python实现图片转字符画的示例
Aug 22 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
如何基于python操作json文件获取内容
Dec 24 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
Python函数式编程中itertools模块详解
Sep 15 Python
Python first-order-model实现让照片动起来
Jun 25 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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
JS打开摄像头并截图上传示例
2017/02/18 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
Python完全新手教程
2007/02/08 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
微信跳一跳游戏python脚本
2020/04/01 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
python文件读取失败怎么处理
2020/06/23 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
社区工作者先进事迹
2014/01/18 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
2014年教务处工作总结
2014/12/03 职场文书
皇城相府导游词
2015/02/06 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android