【发布时间】:2020-03-25 23:18:20
【问题描述】:
我正在使用 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
}
}
【问题讨论】:
-
如果没有看到
Filter和FilterSchema的样子,很难猜到。FilterSchema中的dump是否返回具有data属性的对象?另外,当你说它在使用query.first()时有效,你的意思是你只是替换filters = Filter.query.all()行或其他东西? -
FilterSchema只是一个棉花糖模式,它显示返回行的 id:class FilterSchema(ma.Schema): id = fields.Integer()。是的,我的意思是用Filter.query.first()替换Filter.query.all(),我将编辑问题以澄清。
标签: python flask marshmallow flask-marshmallow