An open API service indexing awesome lists of open source software.

https://github.com/mongoengine/marshmallow-mongoengine

Mongoengine integration with marshmallow
https://github.com/mongoengine/marshmallow-mongoengine

Last synced: 3 months ago
JSON representation

Mongoengine integration with marshmallow

Awesome Lists containing this project

README

        

.. image:: https://travis-ci.org/MongoEngine/marshmallow-mongoengine.svg?branch=master
:target: https://travis-ci.org/MongoEngine/marshmallow-mongoengine
:alt: Travis-CI

.. image:: https://readthedocs.org/projects/marshmallow-mongoengine/badge/?version=latest
:target: http://marshmallow-mongoengine.readthedocs.org/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://coveralls.io/repos/github/MongoEngine/marshmallow-mongoengine/badge.svg?branch=master
:target: https://coveralls.io/github/MongoEngine/marshmallow-mongoengine?branch=master
:alt: Code Coverage

marshmallow-mongoengine
=======================

`Mongoengine `_ integration with the `marshmallow
`_ (de)serialization library.

See documentation at http://marshmallow-mongoengine.rtfd.org/

Declare your models
-------------------

.. code-block:: python

import mongoengine as me

class Author(me.Document):
id = me.IntField(primary_key=True, default=1)
name = me.StringField()
books = me.ListField(me.ReferenceField('Book'))

def __repr__(self):
return ''.format(self=self)

class Book(me.Document):
title = me.StringField()

Generate marshmallow schemas
----------------------------

.. code-block:: python

from marshmallow_mongoengine import ModelSchema

class AuthorSchema(ModelSchema):
class Meta:
model = Author

class BookSchema(ModelSchema):
class Meta:
model = Book

author_schema = AuthorSchema()

(De)serialize your data
-----------------------

.. code-block:: python

author = Author(name='Chuck Paluhniuk').save()
book = Book(title='Fight Club', author=author).save()

dump_data = author_schema.dump(author).data
# {'id': 1, 'name': 'Chuck Paluhniuk', 'books': ['5578726b7a58012298a5a7e2']}

author_schema.load(dump_data).data
#

Get it now
----------
::

pip install -U marshmallow-mongoengine

License
-------

MIT licensed. See the bundled `LICENSE `_ file for more details.