ndb.model子类的自动protorpc消息类型(仅限google应用程序引擎)
automessage的Python项目详细描述
automessage
是一个库,可以帮助您快速创建基于protorpc
的web服务,这些服务可以进行交互
使用ndb
模型(google云数据存储)自动生成Message
类
ndb.Model
子类,以及简单的序列化/反序列化。
注意事项
- 这是相当粗糙的,α级代码。有很多事情要做。使用风险自负。
- 这只适用于google app engine标准环境+python,
protorpc
和ndb
图书馆。
安装
Follow this guide
将automessage作为应用程序引擎python应用程序的第三方库安装;使用pip
命令
你想要的是:
pip install -t lib/ automessage
用法
首先,在您的ndb.Model
子类上使用@automessage.attach
装饰符:
fromgoogle.appengine.extimportndbimportautomessage@automessage.attach()classBook(ndb.Model):title=ndb.StringProperty()author=ndb.StringProperty()publish_date=ndb.DateTimeProperty(indexed=True)
这将在同一个模块中生成一个类BookMessage
(一个protorpc.messages.Message
的子类)
作为Book
类,您可以在基于protorpc
的服务中使用它,例如:
classBooksService(remote.Service):classFindRequest(messages.Message):title=messages.StringField(1,required=True)@remote.method(FindRequest,BookMessage)deffind(self,request):return(Book.query(Book.title==request.title).to_message())# to_message() added by automessage@remote.method(BookMessage,BookMessage)defcreate(self,request):book=Book.from_message(request)# from_message() added by automessagebook.put()returnbook.to_message()
attach
接受几个参数(详细信息请参见代码),这些参数允许您自定义
生成的消息类,转换为驼峰大小写,添加id字段,黑名单/白名单属性,
等等,您可以用多个attach
调用(使用不同的参数)装饰模型来创建
给定模型的多个消息类型。这样做时,您需要提供消息类型
在to_message
调用中,例如book.to_message(CustomBookMessage)
。
相关工作
- Protopigeon是一种几乎完全相同的老方法,具有稍微不同的api和更好的测试。