Flask Restless中如何限制接口返回行数?获取指定查询的最后6条记录
嘿,我来帮你解决Flask Restless里限制接口返回行数,同时拿到查询结果最后6条数据的问题~
核心思路
要获取符合条件的最后6条数据,我们需要两步:先对结果按时间(或唯一标识)倒序排列,这样最新的记录会排在最前面;再限制返回的行数为6,就能得到你要的最后6条啦。
具体实现方式
Flask Restless支持通过查询参数来控制排序和返回数量,有两种常用写法:
方式1:把所有参数放在q的JSON对象里
直接修改你原请求的q参数,加入排序和限制规则:
http://localhost:8111/api/food_order?q={"filters": [{"name":"user_id","op":"==","val":1188}, {"name":"date","op":">","val":"2018-05-01"}], "order_by": [{"field": "date", "direction": "desc"}], "limit": 6}
这里:
limit: 6:明确告诉接口只返回6条数据order_by: [{"field": "date", "direction": "desc"}]:按date字段降序排列,确保最新的记录排在最前面,这样取前6条就是你要的最后6条
方式2:拆分独立的URL参数
你也可以把排序和限制参数单独放在URL里,写法更简洁:
http://localhost:8111/api/food_order?q={"filters": [{"name":"user_id","op":"==","val":1188}, {"name":"date","op":">","val":"2018-05-01"}]}&order_by=-date&limit=6
这里的-date是简写,表示按date字段降序(如果是升序就直接写date),*limit=6*同样限制返回行数。
额外小提示
如果你的food_order表有自增的主键(比如id),也可以按id降序排序,写法是order_by=-id,这样也能快速拿到最新的6条记录,效果和按date排序一致,看你业务需求来选就行。
内容的提问来源于stack exchange,提问作者empty lungs
相关产品推荐
相关产品推荐

