Skip to main content

Flask + marshmallow for beautiful APIs

Project description

https://travis-ci.org/sloria/flask-marshmallow.png?branch=master

Flask + marshmallow for beautiful APIs

Flask-Marshmallow is a thin integration layer for Flask and marshmallow that adds additional features to marshmallow, including URL and Hyperlinks fields for HATEOAS-ready APIs.

from myapp.database import Model, Integer, String, DateTime
from flask_marshmallow import Serializer, fields, pprint

class User(Model):
    id = Column(Integer)
    email = Column(String)
    password = Column(String)
    date_created = Column(DateTime, auto_now_add=True)

class UserMarshal(Serializer):

    class Meta:
        # Fields to expose
        fields = ('email', 'date_created', '_links')

    _links = fields.Hyperlinks({
        # Same params as Flask.url_for, but args can be attribute names
        # surrounded by < >
        'self': fields.URL('author_detail', id='<id>'),
        'collection': fields.URL('authors')
    })

user = User(email='fred@queen.com', password='secret')
user.save()

serialized = UserMarshal(user)
pprint(serialized.data)
# {
#     "email": "fred@queen.com",
#     "date_created": "Fri, 25 Apr 2014 06:02:56 -0000",
#     "_links": {
#         "self": "/api/authors/42",
#         "collection": "/api/authors/"
#     }
# }

Get it now

pip install flask-marshmallow

http://flask-marshmallow.readthedocs.org/

License

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

Changelog

0.1.0-pre (unreleased)

  • First release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask-marshmallow-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

flask_marshmallow-0.1.0-py2.py3-none-any.whl (7.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file flask-marshmallow-0.1.0.tar.gz.

File metadata

File hashes

Hashes for flask-marshmallow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5909208fa0fe832d45813a2db7a05cbe6e5d3b9100292361d35d456c1bdb90d7
MD5 fa9eeee0c2be74248fca2a3a324da160
BLAKE2b-256 1249f46403ebfafb59285f5db590deff4c822146fd50db3d45bb99617b8d9edc

See more details on using hashes here.

Provenance

File details

Details for the file flask_marshmallow-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for flask_marshmallow-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ad5fce00e57293cfa240b75b275fc487ac3705bfe82e75f43e310ccbefd77517
MD5 7cfef46a96f9c937906390044605ab5a
BLAKE2b-256 7e7a56e7775fcb96a5d6726dabdca7a3eb778bcb0ecfca78989431853818d41b

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page