首页 > 解决方案 > 在查询字符串 HTTP 请求中传递过滤器和排序参数并使用 Flask 解析

问题描述

我正在用 Flask 开发一个 REST api。我的端点之一应该支持过滤和排序。假设我有这些字段:类别、颜色、严重性。

假设我想获取类别为“a”或“b”且颜色为黑色的所有项目,并按严重性 asc 和颜色 desc 对其进行排序。

对于排序,我看到在前面加上“+”或“-”是一种设置顺序的方法。

1.解码过滤器表达式的最佳实践是什么?假设我想使用查询字符串方法在获取请求中传递参数(或者最好的选择是为此需要使用 json-body 参数)

2.在flask框架中解析它的最佳方法是什么?

my_ip/items?sort=+severity&sort=-color&filter=???

标签: httpquery-stringflask-restful

解决方案


这篇文章就如何处理它提供了一些很好的建议:分页、过滤和排序

例如:

  • 仅指定排序键:
    • sort=key1,key2,key3
    • key1是第一个键,key2是第二个键,等等。
  • 服务器默认排序方向
  • 指定了一些排序方向:
    • sort=key1:asc,key2,key3
    • 默认任何没有对应方向的排序键
    • key1是第一个键(升序),key2是第二个键(服务器默认的方向),等等。
  • 指定相同数量的排序键和方向:
    • sort=key1:asc,key2:desc,key3:asc
    • 每个键都与对应的方向配对
    • key1是第一个键(升序),key2是第二个键(降序),等等。

推荐阅读