Skip to main content

Flask + marshmallow 用于漂亮的 API

项目描述

最新版本 构建状态 文档 棉花糖 3 兼容 代码风格:黑色

Flask + marshmallow 用于漂亮的 API

Flask -Marshmallow 是 Fl​​ask (一个 Python Web 框架)和marshmallow (一个对象序列化/反序列化库)的一个薄集成层,它为 marshmallow 添加了附加功能,包括 HATEOAS-ready API 的 URL 和超链接字段。它还(可选)与Flask-SQLAlchemy集成。

立即获取

pip install flask-marshmallow

创建您的应用程序。

from flask import Flask
from flask_marshmallow import Marshmallow

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

写你的模型。

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)

用棉花糖定义你的输出格式。

class UserSchema(ma.Schema):
    class Meta:
        # Fields to expose
        fields = ("email", "date_created", "_links")

    # Smart hyperlinking
    _links = ma.Hyperlinks(
        {
            "self": ma.URLFor("user_detail", values=dict(id="<id>")),
            "collection": ma.URLFor("users"),
        }
    )


user_schema = UserSchema()
users_schema = UserSchema(many=True)

输出视图中的数据。

@app.route("/api/users/")
def users():
    all_users = User.all()
    return users_schema.dump(all_users)


@app.route("/api/users/<id>")
def user_detail(id):
    user = User.get(id)
    return user_schema.dump(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/

学到更多

要了解有关棉花糖的更多信息,请查看其文档

执照

麻省理工学院许可。有关更多详细信息,请参阅捆绑的LICENSE文件。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

flask-marshmallow-0.14.0.tar.gz (36.0 kB 查看哈希

已上传 source

内置分布

flask_marshmallow-0.14.0-py2.py3-none-any.whl (10.0 kB 查看哈希

已上传 py2 py3