Flask + marshmallow 用于构建美观的API
项目描述
Flask + marshmallow 用于构建美观的API
Flask-Marshmallow是一个轻量级的集成层,用于Flask(一个Python网络框架)和marshmallow(一个对象序列化/反序列化库),它向marshmallow添加了额外的功能,包括用于HATEOAS准备好的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)
使用marshmallow定义您的输出格式。
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/
了解更多信息
要了解更多关于marshmallow的信息,请查看其文档。
项目链接
许可证
MIT许可证。有关详细信息,请参阅捆绑的LICENSE文件。
项目详情
关闭
flask_marshmallow-1.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a |
|
MD5 | 390010c2e3b7a05a72b7c9dcd8a39315 |
|
BLAKE2b-256 | bf9c0c0cee00441981502358b4bc6e3d1b21247d3d80a277dde18bf3d0ad7426 |
关闭
flask_marshmallow-1.2.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 10b5048ecfaa26f7c8d0aed7d81083164450e6be8e81c04b3d4a586b3f7b6678 |
|
MD5 | ddc3c5699abc420a5fd306be8dd5ccca |
|
BLAKE2b-256 | 6858b20b1c8e3174479ea23388d61a9772132586ff492a280acbc84082a2a176 |