pythonmath库引入方法(python使用thrift教程的方法示例)
类别:脚本大全 浏览量:2780
时间:2021-11-08 14:12:04 pythonmath库引入方法
python使用thrift教程的方法示例一、前言:
thrift 是一种接口描述语言和二进制通信协议。以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 thrift 进行通信的,然后写自动化脚本之前研究了一下。
需要定义一个xxx.thrift的文件, 来生成各种语言的代码,生成之后我们的服务提供者和消费者,都需要把代码引入,服务端把代码实现,消费者直接使用api的存根,直接调用。
和 http 相比,同属于应用层,走 tcp 协议。thrift 优势在于发送同样的数据,request包 和 response包 要比 http 小很多,在整体性能上要优于 http 。
二、使用方法
环境准备:
从官网上下载 windows 版的 thrift.exe:http://archive.apache.org/dist/thrift/0.9.3/(我这里用的是0.9.3版本)
python版本:python 3.7.1
pip3 install thrift
1.首先使用 thrift 之前需要定义一个 .thrift 格式的文件,比如 test.thrift
|
service transmit { string saymsg( 1 :string msg); string invoke( 1 :i32 cmd 2 :string token 3 :string data) } |
然后运行命令:thrift-0.9.3.exe -gen py test.thrift 生成 python 代码
生成如下结构
2.然后将生成的 python 代码 和 文件,放到新建的 python 项目中。完成后先运行服务器代码。
服务端代码 server.py:
|
import json from test import transmit from test.ttypes import * from thrift.transport import tsocket from thrift.transport import ttransport from thrift.protocol import tbinaryprotocol from thrift.server import tserver import socket class transmithandler: def __init__( self ): self .log = {} def saymsg( self , msg): msg = json.loads(msg) print ( "saymsg(" + msg + ")" ) return "say " + msg + " from " + socket.gethostbyname(socket.gethostname()) def invoke( self ,cmd,token,data): cmd = cmd token = token data = data if cmd = = 1 : return json.dumps({token:data}) else : return 'cmd不匹配' if __name__ = = "__main__" : handler = transmithandler() processor = transmit.processor(handler) transport = tsocket.tserversocket( '127.0.0.1' , 8000 ) tfactory = ttransport.tbufferedtransportfactory() pfactory = tbinaryprotocol.tbinaryprotocolfactory() server = tserver.tsimpleserver(processor, transport, tfactory, pfactory) print ( "starting python server..." ) server.serve() |
客户端代码 client.py
|
import sys import jsonfrom test import transmit from test.ttypes import * from test.constants import * from thrift import thrift from thrift.transport import tsocket from thrift.transport import ttransport from thrift.protocol import tbinaryprotocol transport = tsocket.tsocket( '127.0.0.1' , 8000 ) transport = ttransport.tbufferedtransport(transport) protocol = tbinaryprotocol.tbinaryprotocol(transport) client = transmit.client(protocol) # connect! transport. open () cmd = 2 token = '1111-2222-3333-4444' data = json.dumps({ "name" : "zhoujielun" }) msg = client.invoke(cmd,token,data) print (msg) transport.close() # 执行结果:cmd不匹配 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:http://www.cnblogs.com/shenh/p/10529073.html
您可能感兴趣
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- python删除列表中的重复元素(Python实现去除列表中重复元素的方法总结7种方法)
- python为什么要用多进程(对Python的多进程锁的使用方法详解)
- 用python图片转字符串(python实现图片转字符小工具)
- python如何使用multiprocess(Python multiprocessing多进程原理与应用示例)
- pythonmatplotlib散点图怎么画(python使用matplotlib画柱状图、散点图)
- python编写一个聊天机器人(不到20行代码用Python做一个智能聊天机器人)
- python爬取在线评论(Python爬虫实现爬取百度百科词条功能实例)
- python中jieba库怎么用(详解Python数据可视化编程 - 词云生成并保存jieba+WordCloud)
- python爬虫10分钟教程(浅谈Python爬虫基本套路)
- python集合类(Python数据类型之Set集合实例详解)
- python 获取天气预报(详解用python自制微信机器人,定时发送天气预报)
- pythonai识别算法(Python3调用百度AI识别图片中的文字功能示例测试可用)
- python把文件上传服务器(Python 实现两个服务器之间文件的上传方法)
- python redis锁的使用(Python操作redis实例小结String、Hash、List、Set等)
- linux下python安装pip(在Docker中的ubuntu中安装Python3和Pip的问题)
- 通过体温就能为智能手表充电 原来是用NASA在空间站用的黑科技(通过体温就能为智能手表充电)
- 智能手表兼容Windows和Android 无需充电挑战苹果(智能手表兼容Windows和Android)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
- vivo首款智能手表来了 也有血氧饱和度监测,一次充电18天续航(vivo首款智能手表来了)
热门推荐
- python怎么从数组中取内容(python调用c++ ctype list传数组或者返回数组的方法)
- 织梦dedecms开启付费授权(去掉织梦DedeCMS列表推荐时标题被加粗的方法)
- dedecms标签插入时间(dedecms修改按tag标签显示全站相关内容的方法)
- asp.net func 委托
- 支持多种数据库的数据库管理工具:navicat premium
- python教程列表排序(Python一行代码实现快速排序的方法)
- 多个web.config文件的加载顺序
- 搬瓦工用哪个端口号(搬瓦工bandwagon服务器购买及初步环境搭建图文教程)
- svn迁移
- ecmascript解析(ECMAScript6中Map映射的基本概念与常用方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9