-1

我正在使用 Flask 和 marshmallow 构建一个 API 来格式化查询结果,但由于某种原因Filter.query.all()返回空,但是当我用它替换Filter.query.first()它时返回第一个过滤器。我还仔细检查了我的数据库以确保存在多个条目。我在这里做错了什么吗?

from Model import db, Filter

class FilterSchema(ma.Schema):
    id = fields.Integer()

filter_schema = FilterSchema()

### returns list of all filters in Filter db

def get(self):
    filters = Filter.query.all()
    filters = filter_schema.dump(filters).data
    return {'status': 'success', 'data': filters}, 200

返回:

{
    "status": "success",
    "data": {}
}

Filter.query.first()返回:

{
    "status": "success",
    "data": {
        "id": 1
    }
}
4

1 回答 1

2

事实证明,对于棉花糖中的模式,您需要指定模式是否正在转储多个条目。当有多个时,添加many=True到您的FilterSchema()

IE:filter_schema = FilterSchema(many=True)

甚至更好的是,添加一个不同的变量,称为 filters_schema = FilterSchema(many=True)

并根据您要返回的数据选择使用哪一个。

于 2020-03-26T04:25:19.547 回答