资深程序猿写下的grpc在django中使用的笔记

  • A+
所属分类:编程语言

资深程序猿写下的grpc在django中使用的笔记

人生苦短,我用Python

最近在做微服务这一块,后端与java合作,自己是python的,所以考虑使用grpc,一点考虑是grpc是http2.0,另一点考虑是老大要求的:)


初步尝试是在python脚本中与java对接接口,经常官方文档的一顿学习,成功调通了接口

https://grpc.io/docs/quickstart/python.html

不过在教程里clone的那个项目实在是大,不确定哪些是需要的,经过测试后给出需要的:

  • grpcio==1.4.0

  • grpcio-tools==1.4.0

  • xxx.proto 没错,只需要这么一个文件

  • 编译xxx.proto的命令

python -m grpc_tools.protoc -I./protos --python_out=. --grpc_python_out=. ./protos/xxx.proto

这里解释一下,python(不解释) -m(也不解释) grpc_tools.protoc(上面安装的三方)

-I./protos(标识当前目录下的protos文件夹,xxx.proto需要在这个文件夹中) --python_out=.(当前目录生成输出文件) --grpc_python_out=.(当前目录生成grpc文件) ./protos/xxx.proto(xxx.proto的相对路径)

在配置好grpc的xxx.proto之后要保证java那边的这个文件要一样(并不是全部,service开始需要完全相同)

运行命令后会生成xxx_pb2.py 和 xxx_pb2_grpc.py两个文件,接下来重点来了(拍桌子)

我既想用django的model又想用grpc该怎么办呢,django是一个服务,grpc是一个服务,直接暴力把grpc代码加入django是没办法使用models和views的。

解决方法就是在greeter_server.py中(这个文件不知道请看上面的链接)加载django,大致如下:

import os

运行时只需要运行该脚本即可,django服务不必启用。

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: