Metadata-Version: 2.1
Name: flask-marshmallow
Version: 0.10.1
Summary: Flask + marshmallow for beautiful APIs
Home-page: https://github.com/marshmallow-code/flask-marshmallow
Author: Steven Loria
Author-email: sloria1@gmail.com
License: MIT
Project-URL: Issues, https://github.com/marshmallow-code/flask-marshmallow/issues
Project-URL: Funding, https://opencollective.com/marshmallow
Description: *****************
        Flask-Marshmallow
        *****************
        
        |pypi-package| |build-status| |docs| |marshmallow23| |black|
        
        Flask + marshmallow for beautiful APIs
        ======================================
        
        Flask-Marshmallow is a thin integration layer for `Flask`_ (a Python web framework) and `marshmallow`_ (an object serialization/deserialization library) that adds additional features to marshmallow, including URL and Hyperlinks fields for HATEOAS-ready APIs. It also (optionally) integrates with `Flask-SQLAlchemy <http://flask-sqlalchemy.pocoo.org/>`_.
        
        Get it now
        ----------
        ::
        
            pip install flask-marshmallow
        
        
        Create your app.
        
        .. code-block:: python
        
            from flask import Flask, jsonify
            from flask_marshmallow import Marshmallow
        
            app = Flask(__name__)
            ma = Marshmallow(app)
        
        Write your models.
        
        .. code-block:: python
        
            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.
        
        .. code-block:: python
        
        
            class UserSchema(ma.Schema):
                class Meta:
                    # Fields to expose
                    fields = ("email", "date_created", "_links")
        
                # Smart hyperlinking
                _links = ma.Hyperlinks(
                    {"self": ma.URLFor("user_detail", id="<id>"), "collection": ma.URLFor("users")}
                )
        
        
            user_schema = UserSchema()
            users_schema = UserSchema(many=True)
        
        
        Output the data in your views.
        
        .. code-block:: python
        
            @app.route("/api/users/")
            def users():
                all_users = User.all()
                result = users_schema.dump(all_users)
                return jsonify(result.data)
                # OR
                # return user_schema.jsonify(all_users)
        
        
            @app.route("/api/users/<id>")
            def user_detail(id):
                user = User.get(id)
                return user_schema.jsonify(user)
        
        
            # {
            #     "email": "fred@queen.com",
            #     "date_created": "Fri, 25 Apr 2014 06:02:56 -0000",
            #     "_links": {
            #         "self": "/api/users/42",
            #         "collection": "/api/users/"
            #     }
            # }
        
        
        http://flask-marshmallow.readthedocs.io/
        ========================================
        
        Learn More
        ==========
        
        To learn more about marshmallow, check out its `docs <http://marshmallow.readthedocs.io/en/latest/>`_.
        
        
        
        Project Links
        =============
        
        - Docs: https://flask-marshmallow.readthedocs.io/
        - Changelog: http://flask-marshmallow.readthedocs.io/en/latest/changelog.html
        - PyPI: https://pypi.python.org/pypi/flask-marshmallow
        - Issues: https://github.com/marshmallow-code/flask-marshmallow/issues
        
        License
        =======
        
        MIT licensed. See the bundled `LICENSE <https://github.com/marshmallow-code/flask-marshmallow/blob/master/LICENSE>`_ file for more details.
        
        
        .. _Flask: http://flask.pocoo.org
        .. _marshmallow: http://marshmallow.readthedocs.io
        
        .. |pypi-package| image:: https://badgen.net/pypi/v/flask-marshmallow
            :target: https://pypi.org/project/flask-marshmallow/
            :alt: Latest version
        .. |build-status| image:: https://badgen.net/travis/marshmallow-code/flask-marshmallow/dev
            :target: https://travis-ci.org/marshmallow-code/flask-marshmallow
            :alt: Travis-CI
        .. |docs| image:: https://readthedocs.org/projects/flask-marshmallow/badge/
           :target: https://flask-marshmallow.readthedocs.io/
           :alt: Documentation
        .. |marshmallow23| image:: https://badgen.net/badge/marshmallow/2,3?list=1
            :target: https://marshmallow.readthedocs.io/en/latest/upgrading.html
            :alt: marshmallow 3 compatible
        .. |black| image:: https://badgen.net/badge/code%20style/black/000
            :target: https://github.com/ambv/black
            :alt: code style: black
        
Keywords: flask-marshmallow
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Provides-Extra: lint
Provides-Extra: sqlalchemy
Provides-Extra: tests
Provides-Extra: dev
