对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调用cmd命令行制作刷博器
Jan 13 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
解决Python一行输出不显示的问题
Dec 03 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python全面解析接口返回数据
Feb 12 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
php GD绘制24小时柱状图
2008/06/28 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
python执行get提交的方法
2015/04/29 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
基于Python List的赋值方法
2018/06/23 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python 并发下载器实现方法示例
2019/11/22 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
软件测试常见笔试题
2012/02/04 面试题
搞笑婚礼主持词
2014/03/13 职场文书
大学新学期计划书
2014/04/28 职场文书
医德考评自我评价
2014/09/14 职场文书
张思德观后感
2015/06/09 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers