2020-12-01
Python培訓(xùn) 好程序員
好程序員Python培訓(xùn)分享Python如何調(diào)用RPC接口,Python如何調(diào)用RPC接口是很多Python開(kāi)發(fā)工程師比較關(guān)心的問(wèn)題,本篇文章好程序員Python培訓(xùn)小編就給喜歡Python開(kāi)發(fā)的小伙伴們分享一下Python調(diào)用RPC接口的詳解,文中有詳細(xì)的代碼列出有很好的參考價(jià)值,喜歡的小伙伴就隨小編一起來(lái)看一下吧,希望對(duì)大家有所幫助。
需要安裝的python包如下:
1、grpc安裝
pip install grpcio
2、grpc的python protobuf相關(guān)的編譯工具
pip install grpcio-tools
3、protobuf相關(guān)python依賴(lài)庫(kù)
pip install protobuf
4、一些常見(jiàn)原型的生成python類(lèi)的集合:
pip install googleapis-common-protos
編譯protobuf文件:使用以下命令生成Python代碼:
python3 -m grpc_tools.protoc -I<目標(biāo)路徑目錄> --python_out=. --grpc_python_out=<目標(biāo)文件所在目錄路徑> <目標(biāo)文件data.proto>
python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto
注意:protobuf文件,為定義服務(wù)接口代碼文件,這里是data.proto
會(huì)生成:data_pb2.py 與 data_pb2_grpc.py
data_pb2.py是服務(wù)接口映射
data_pb2_grpc.py方法映射
protobuf內(nèi)容示例:
syntax = "proto3";
package grpcDemo;
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
service gRPC {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
接口調(diào)用內(nèi)容示例:
# -*- 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培訓(xùn)小編給大家分享的Python調(diào)用RPC接口詳解,希望對(duì)小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄好程序員官網(wǎng)咨詢(xún)。
開(kāi)班時(shí)間:2021-04-12(深圳)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-17(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-03-22(杭州)
開(kāi)班盛況開(kāi)班時(shí)間:2021-04-26(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-10(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-02-22(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2020-09-21(上海)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2019-07-22(北京)
開(kāi)班盛況
Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right
京ICP備12003911號(hào)-5
京公網(wǎng)安備 11010802035720號(hào)