对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实现计算倒数的方法
Jul 11 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
在双python下设置python3为默认的方法
Oct 31 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
Python函数参数类型及排序原理总结
Dec 19 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
python实现加密的方式总结
Jan 19 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下载excel无法打开的解决方法
2013/12/24 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
XENON基于JSON变种
2010/07/27 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
理解JS绑定事件
2016/01/19 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
python中的函数用法入门教程
2014/09/02 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
企业行政文员岗位职责
2013/12/03 职场文书
大课间活动实施方案
2014/03/06 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
房屋产权证明书
2015/06/19 职场文书
导游词之无锡梅园
2019/11/28 职场文书
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle