对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 命令行参数sys.argv
Sep 06 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
Python Cookie 读取和保存方法
Dec 28 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
mac使用python识别图形验证码功能
Jan 10 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 Python
Python实现简单得递归下降Parser
May 02 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
adodb与adodb_lite之比较
2006/12/31 PHP
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
微信小程序事件流原理解析
2019/11/27 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python中@property的理解和使用示例
2019/06/11 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Django CBV类的用法详解
2019/07/26 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
敬老院活动总结
2014/04/28 职场文书
工程项目合作意向书
2015/05/08 职场文书
php中pcntl_fork详解
2021/04/01 PHP
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python