skip to navigation
skip to content

flask-marshmallow 0.2.0

Flask + marshmallow for beautiful APIs

Latest Version: 0.8.0

Flask + marshmallow for beautiful APIs

Flask-Marshmallow is a thin integration layer for Flask (a Python web framework) and marshmallow (a serialization library) that adds additional features to marshmallow, including URL and Hyperlinks fields for HATEOAS-ready APIs.

Create your app.

from flask import Flask, jsonify
from flask.ext.marshmallow import Marshmallow

app = Flask(__name__)
ma = Marshmallow(app)

Write your models.

from your_orm import Model, Column, Integer, String, DateTime

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

Define your output format with marshmallow.

class UserMarshal(ma.Serializer):
    class Meta:
        # Fields to expose
        fields = ('email', 'date_created', '_links')
    # Smart hyperlinking
    _links = ma.Hyperlinks({
        'self': ma.URL('author_detail', id='<id>'),
        'collection': ma.URL('authors')

Output the data in your views.

def authors():
    users = User.all()
    serialized = UserMarshal(users, many=True)
    return jsonify(

def author_detail(id):
    user = User.get(id)
    serialized = UserMarshal(user)
    return jsonify(
# {
#     "email": "",
#     "date_created": "Fri, 25 Apr 2014 06:02:56 -0000",
#     "_links": {
#         "self": "/api/authors/42",
#         "collection": "/api/authors/"
#     }
# }

Learn More

To learn more about marshmallow, check out its docs.

Get it now

pip install flask-marshmallow


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


0.2.0 (2014-05-12)

  • Implementation as a proper class-based Flask extension.
  • Serializer and fields classes are available from the Marshmallow object.

0.1.0 (2014-04-25)

  • First release.
  • Hyperlinks, URL, and AbsoluteURL fields implemented.
  • Serializer#jsonify implemented.
File Type Py Version Uploaded on Size
flask-marshmallow-0.2.0.tar.gz (md5) Source 2014-05-12 6KB
flask_marshmallow-0.2.0-py2.py3-none-any.whl (md5) Python Wheel 2.7 2014-05-12 8KB