用python编写的google appengine ndb属性生成器。您可以通过这个库将JSON数据转换为自定义NDB属性。

ndb_prop_gen的Python项目详细描述


https://travis-ci.org/taxpon/ndb_prop_gen.svghttps://coveralls.io/repos/github/taxpon/ndb_prop_gen/badge.svg?branch=master

用python编写的google appengine ndb属性生成器。您可以通过这个库将json数据转换为您的自定义ndb属性

这是什么?

简单的ndb Property Subclass生成器。使用json定义类的属性。

源json示例

{"name":"book","class":"Book","props":[{"name":"title","type":"String","default":""},{"name":"author","type":"String","default":""},{"name":"published","type":"DateTime","default":null},{"name":"price","type":"Float","default":10.0},{"name":"read","type":"Bool","default":false}]}

生成的python示例

# -*- coding: utf-8 -*-fromgoogle.appengine.extimportndb__all__=["Book","BookModel","BookProperty","LocalBookProperty"]classBook(object):def__init__(self,title="",author="",published=None,price=10.0,read=False):self._title=titleself._author=authorself._published=publishedself._price=priceself._read=read@propertydeftitle(self):returnself._title@propertydefauthor(self):returnself._author@propertydefpublished(self):returnself._published@propertydefprice(self):returnself._price@propertydefread(self):returnself._readdef_prepare_for_put(self):passdef_has_repeated(self):passdef_to_dict(self):passclassBookModel(ndb.Model):title=ndb.StringProperty(default="")author=ndb.StringProperty(default="")published=ndb.DateTimeProperty()price=ndb.FloatProperty(default=10.0)read=ndb.BooleanProperty(default=False)classBookProperty(ndb.StructuredProperty):def__init__(self,**kwds):super(BookProperty,self).__init__(BookModel,**kwds)def_validate(self,value):assertisinstance(value,Book)def_to_base_type(self,value):returnBookModel(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)def_from_base_type(self,value):returnBook(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)classLocalBookProperty(ndb.StructuredProperty):def__init__(self,**kwds):super(LocalBookProperty,self).__init__(BookModel,**kwds)def_validate(self,value):assertisinstance(value,Book)def_to_base_type(self,value):returnBookModel(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)def_from_base_type(self,value):returnBook(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)

有关更多示例,请参见example目录

用法

  1. 通过PIP安装ndb_prop_gen
pip install ndb_prop_gen
  1. 调用生成方法
  • 通过命令行
ndb_prop_gen test.json
  • 通过python代码
importndb_prop_genasnpg# noqa# filename is the json's filenamenpg.generate(filename)

许可证

麻省理工学院

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

推荐PyPI第三方库


热门话题
Java 2D数组,查找包含元素   包含EBCDIC值的java打印字节数组未给出预期值   java应用程序重新启动,由于AndroidRuntime异常而无法运行   java在spring中对拦截器的使用   java ActiveMQ,代理接收要发送的消息的时间戳   JAVA:如何从需要启用Cookie的站点下载HTML文件?   邮件发送期间发生java证书错误   Java错误:类事务中的构造函数事务无法应用于给定类型   方法的Java对象空检查   Java如何在多个源文件夹之间使用全局变量?   二进制字符串到整数转换器中的java错误   java在关闭页面后保存数据   c#使用java客户端使用WCF restful Web服务?   java在从vimeo api获取后更改iframe src   API低于17的java Android AlertDialog setOnDismissListener   java如何将文本从对象的ArrayList设置为TextView?   java OpenCV Android imwrite给我一个蓝色图像   java能够在RecyclerView中同时单击两个项目   java将字节数组写入文件的快速方法