与棉花糖(de)序列化库的peewee集成。
Marshmallow-Peewee的Python项目详细描述
marshmallow peewee–Peewee与Marshmallow(de)序列化库集成。
importpeeweeaspwclassRole(pw.Model):name=pw.CharField(255,default='user')classUser(pw.Model):created=pw.DateTimeField(default=dt.datetime.now())name=pw.CharField(255)title=pw.CharField(127,null=True)active=pw.BooleanField(default=True)rating=pw.IntegerField(default=0)role=pw.ForeignKeyField(Role)frommarshmallow_peeweeimportModelSchemaclassUserSchema(ModelSchema):classMeta:model=Userrole=Role.create()user=User.create(name='Mike',role=role)result,errors=UserSchema().dump(user)print(result)# {'active': True,# 'created': '2016-03-29T15:27:18.600034+00:00',# 'id': 1,# 'name': 'Mike',# 'rating': 0,# 'role': 1,# 'title': None}result,errors=UserSchema().load(result)assertisinstance(result,User)assertresult.name=='Mike'frommarshmallow_peeweeimportRelatedclassUserSchema(ModelSchema):role=Related()classMeta:model=Userresult,errors=UserSchema().dump(user)print(result)# {'active': True,# 'created': '2016-03-29T15:30:32.767483+00:00',# 'id': 1,# 'name': 'Mike',# 'rating': 0,# 'role': {'id': 5, 'name': 'user'},# 'title': None}result,errors=UserSchema().load(result)assertnoterrorsassertisinstance(result,User)assertisinstance(result.role,Role)
Requirements
- Python2.7+,3.4+
Installation
marshmallow peewee应该使用pip安装:
pip install Marshmallow-Peewee
注意
棉花糖peewee>;=2.0.0仅支持peewee>;=3.0.0。用于Peewee<;3.0.0 请使用marhmallow peewee==1.2.7
Usage
importpeeweeaspwclassRole(pw.Model):name=pw.CharField(255,default='user')classUser(pw.Model):created=pw.DateTimeField(default=dt.datetime.now())name=pw.CharField(255)title=pw.CharField(127,null=True)active=pw.BooleanField(default=True)rating=pw.IntegerField(default=0)role=pw.ForeignKeyField(Role)frommarshmallow_peeweeimportModelSchemaclassUserSchema(ModelSchema):classMeta:# model: Bind peewee.Model to the Schemamodel=User# model_converter: Use custom model_converter# model_converter = marshmallow_peewee.ModelConverter# dump_only_pk: Primary key is dump only# dump_only_pk = True# string_keys: Convert keys to strings# string_keys = True
Bug tracker
如果您有任何建议、错误报告或 烦恼请向问题追踪者报告 在https://github.com/klen/marshmallow-peewee/issues
License
根据麻省理工学院的许可证(请参阅许可证)