对python调用RPC接口的实例详解


Posted in Python onJanuary 03, 2019

要调用RPC接口,python提供了一个框架grpc,这是google开源的

rpc相关文档:

https://grpc.io/docs/tutorials/basic/python.html

需要安装的python包如下:

1.grpc安装

pip install grpcio

2.grpc的python protobuf相关的编译工具

pip install grpcio-tools

3.protobuf相关python依赖库

pip install protobuf

4.一些常见原型的生成python类的集合:

pip install googleapis-common-protos

编译protobuf文件:使用以下命令生成Python代码:

python3 -m grpc_tools.protoc -I<目标路径目录> --python_out=. --grpc_python_out=<目标文件所在目录路径> <目标文件data.proto>

python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto

注意:protobuf文件,为定义服务接口代码文件,这里是data.proto

会生成:data_pb2.py 与 data_pb2_grpc.py

data_pb2.py是服务接口映射

data_pb2_grpc.py方法映射

protobuf内容示例:

syntax = "proto3";
package grpcDemo;

message HelloRequest {
 string name = 1;
}

message HelloReply {
 string message = 1;
}


service gRPC {
 rpc SayHello (HelloRequest) returns (HelloReply) {}
}

接口调用内容示例:

# -*- coding: utf-8 -*-
import grpc
import data_pb2,data_pb2_grpc

_HOST = 'localhost'
_PORT = '8080'

def run():
 conn = grpc.insecure_channel(_HOST + ':' + _PORT)
 client = data_pb2_grpc.gRPCStub(channel=conn)
 response = client.SayHello(data_pb2.HelloRequest(name='hello,world!'))
 print("received: " + response.text)

if __name__ == '__main__':
 run()

以上这篇对python调用RPC接口的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python比较两个图片相似度的方法
Mar 13 Python
Python素数检测实例分析
Jun 15 Python
详解Python3中yield生成器的用法
Aug 20 Python
Python处理JSON数据并生成条形图
Aug 05 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
Python rstrip()方法实例详解
Nov 11 Python
python里运用私有属性和方法总结
Jul 08 Python
python如何实现word批量转HTML
Sep 30 Python
Python调用Redis的示例代码
Nov 24 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 #Python
Python多图片合并PDF的方法
Jan 03 #Python
python对于requests的封装方法详解
Jan 03 #Python
python使用suds调用webservice接口的方法
Jan 03 #Python
Python调用服务接口的实例
Jan 03 #Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 #Python
python requests 库请求带有文件参数的接口实例
Jan 03 #Python
You might like
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
Move.js入门
2017/02/08 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
《太阳》教学反思
2014/02/21 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
五好家庭申报材料
2014/12/20 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL