繁体   English   中英

Flask-RESTful返回不需要是json.dumps()

[英]Flask-RESTful return does not need to be json.dumps()

我正在尝试将我的REST服务器从Flask切换到Flask-RESTful。

我感到困惑的是,我正在使用改造来读取客户端上的数据,但在第一个实例中我需要使用json.dumps(数据),第二个我只需要返回。

有谁能解释一下? 在这两个代码中,数据都是一个列表

第一个例子就是Flask

data = []
for row in cur.fetchall():
    out = {
        "list_id": row[0],
        "list_name": row[1]
    }
    data.append(out)
cur.close()
return json.dumps(data)

第二个例子Flask-RESTful

class UserLists(Resource):
def get(self, user_id):
    results = Lists.query.filter(Lists.user_id == user_id).all()
    data = [{'list_id': list_item.id, 'list_name': list_item.name} for list_item in results]
    return data

Flask-RESTful负责为您编写响应。 它不仅仅返回JSON,它将根据客户端请求的格式(通过Accept请求头设置)编码为支持的格式。

请参阅“ 内容协商”一章 ,了解如何添加默认JSON输出以外的格式支持。

因此,对于Flask-RESTful响应,您需要返回Python结构,而不是JSON编码数据,因为如果您希望将来支持此类格式,则可能会产生XML或CSV响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM