对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 相关文章推荐
20招让你的Python飞起来!
Sep 27 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
Python3基于print打印带颜色字符串
Jul 06 Python
Python进行特征提取的示例代码
Oct 15 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
用PHP连接Oracle数据库
2006/10/09 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
php递归json类实例
2014/12/02 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
python 简单的多线程链接实现代码
2016/08/28 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python实现括号匹配方法详解
2020/02/10 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
表彰先进的通报
2014/01/31 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
施工工地安全标语
2014/06/07 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
十八大标语口号
2014/10/09 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
python字典的元素访问实例详解
2021/07/21 Python