对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内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
python 输出上个月的月末日期实例
Apr 11 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
python write无法写入文件的解决方法
Jan 23 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
python解析yaml文件过程详解
Aug 30 Python
Django之路由层的实现
Sep 09 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
python pymysql库的常用操作
Oct 16 Python
Python类的继承super相关原理解析
Oct 22 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
PHP5中MVC结构学习
2006/10/09 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
详解vue axios二次封装
2018/07/22 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
python多进程共享变量
2016/04/06 Python
python目录与文件名操作例子
2016/08/28 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
基于Python List的赋值方法
2018/06/23 Python
python安装twisted的问题解析
2018/08/21 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
小学运动会表扬稿
2014/01/19 职场文书
预备党员政审材料
2014/02/04 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
竞赛口号大全
2014/06/16 职场文书
2014年科室工作总结
2014/11/20 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
教师思想工作总结2015
2015/05/13 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers