Django的gRPC。

djangogrpcframework的Python项目详细描述


https://img.shields.io/pypi/v/djangogrpcframework.svghttps://readthedocs.org/projects/djangogrpcframework/badge/?version=latesthttps://travis-ci.org/fengsp/django-grpc-framework.svg?branch=masterhttps://img.shields.io/pypi/pyversions/djangogrpcframeworkhttps://img.shields.io/pypi/l/djangogrpcframework

Django gRPC框架是一个用于构建gRPC服务的工具包,其灵感来自 djangorestframework。在

要求

  • Python(3.6、3.7、3.8)
  • Django(2.2,3.0),Django REST框架(3.10.x,3.11.x)
  • gRPC,gRPC工具,proto3

安装

$ pip install djangogrpcframework

{$tt2}添加到^$tt1}:

^{pr2}$

演示

下面是一个使用gRPC框架构建一个简单 模型支持服务用于访问用户,启动新项目:

$ django-admin startproject demo
$ python manage.py migrate

生成.proto文件demo.proto

python manage.py generateproto --model django.contrib.auth.models.User --fields id,username,email --file demo.proto

生成gRPC代码:

python -m grpc_tools.protoc --proto_path=./ --python_out=./ --grpc_python_out=./ ./demo.proto

现在编辑demo/urls.py模块:

fromdjango.contrib.auth.modelsimportUserfromdjango_grpc_frameworkimportgenerics,proto_serializersimportdemo_pb2importdemo_pb2_grpcclassUserProtoSerializer(proto_serializers.ModelProtoSerializer):classMeta:model=Userproto_class=demo_pb2.Userfields=['id','username','email']classUserService(generics.ModelService):queryset=User.objects.all()serializer_class=UserProtoSerializerurlpatterns=[]defgrpc_handlers(server):demo_pb2_grpc.add_UserControllerServicer_to_server(UserService.as_servicer(),server)

就这样,我们完了!在

$ python manage.py grpcrunserver --dev

现在您可以运行gRPC客户端来访问该服务:

withgrpc.insecure_channel('localhost:50051')aschannel:stub=demo_pb2_grpc.UserControllerStub(channel)foruserinstub.List(demo_pb2.UserListRequest()):print(user,end='')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我在SearchView谷歌地图中遇到问题   java Oracle将空字符串转换为null,但JPA不会相应地更新实体缓存   javascript Webview未显示该页面   java无法解析“JSONObject”中的方法“toMap”   Web服务的简单java客户端代码与QName有关吗?   跨不同测试类共享TestNG设置Selenium Java   java如何将Spring OAuth2服务器集成到Liferay中   java无法解析导入sun   使用1个变量的java Fibonacci   java如何从活动中调用片段活动?   html Java/HtmlUnit如何从HtmlImageInput获取HtmlImage?   JavaGoogleMapsAPIv2显示空白地图   Java:printstream输出奇怪,为什么toString不转换?   linux为什么有时候JVM会被卡住几秒钟,然后在java中再次恢复?   Java在流中丢失国际字符   java More Mockito返回\u DEEP\u STUBS悲哀   java有没有办法仅从jdbc数据库url恢复数据库(.db或.mdb文件)?   java ArrayList removeAll()不删除对象