Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marshmallow-code/flask-marshmallow
Flask + marshmallow for beautiful APIs
https://github.com/marshmallow-code/flask-marshmallow
flask marshmallow python python-3 rest-api sqlalchemy
Last synced: 4 days ago
JSON representation
Flask + marshmallow for beautiful APIs
- Host: GitHub
- URL: https://github.com/marshmallow-code/flask-marshmallow
- Owner: marshmallow-code
- License: mit
- Created: 2014-04-25T23:35:09.000Z (over 10 years ago)
- Default Branch: dev
- Last Pushed: 2024-10-14T13:18:19.000Z (3 months ago)
- Last Synced: 2024-10-29T15:47:08.442Z (2 months ago)
- Topics: flask, marshmallow, python, python-3, rest-api, sqlalchemy
- Language: Python
- Homepage: http://flask-marshmallow.readthedocs.io/
- Size: 441 KB
- Stars: 875
- Watchers: 16
- Forks: 59
- Open Issues: 25
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-flask - flask-marshmallow
- awesome-flask - flask-marshmallow
- awesome-flask - flask-marshmallow
- jimsghstars - marshmallow-code/flask-marshmallow - Flask + marshmallow for beautiful APIs (Python)
- best-of-web-python - GitHub - 20% open · ⏱️ 04.06.2024): (Flask Utilities)
README
*****************
Flask-Marshmallow
*****************|pypi-package| |build-status| |docs| |marshmallow-support|
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 `_.
Get it now
----------
::pip install flask-marshmallow
Create your app.
.. code-block:: python
from flask import Flask
from flask_marshmallow import Marshmallowapp = 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):
email = ma.Email()
date_created = ma.DateTime()# Smart hyperlinking
_links = ma.Hyperlinks(
{
"self": ma.URLFor("user_detail", values=dict(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()
return users_schema.dump(all_users)@app.route("/api/users/")
def user_detail(id):
user = User.get(id)
return user_schema.dump(user)# {
# "email": "[email protected]",
# "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 `_.
Project Links
=============- Docs: https://flask-marshmallow.readthedocs.io/
- Changelog: http://flask-marshmallow.readthedocs.io/en/latest/changelog.html
- PyPI: https://pypi.org/project/flask-marshmallow/
- Issues: https://github.com/marshmallow-code/flask-marshmallow/issuesLicense
=======MIT licensed. See the bundled `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://github.com/marshmallow-code/flask-marshmallow/actions/workflows/build-release.yml/badge.svg
:target: https://github.com/marshmallow-code/flask-marshmallow/actions/workflows/build-release.yml
:alt: Build status.. |docs| image:: https://readthedocs.org/projects/flask-marshmallow/badge/
:target: https://flask-marshmallow.readthedocs.io/
:alt: Documentation.. |marshmallow-support| image:: https://badgen.net/badge/marshmallow/3,4?list=1
:target: https://marshmallow.readthedocs.io/en/latest/upgrading.html
:alt: marshmallow 3|4 compatible