http - 在查询字符串 HTTP 请求中传递过滤器和排序参数并使用 Flask 解析
问题描述
我正在用 Flask 开发一个 REST api。我的端点之一应该支持过滤和排序。假设我有这些字段:类别、颜色、严重性。
假设我想获取类别为“a”或“b”且颜色为黑色的所有项目,并按严重性 asc 和颜色 desc 对其进行排序。
对于排序,我看到在前面加上“+”或“-”是一种设置顺序的方法。
1.解码过滤器表达式的最佳实践是什么?假设我想使用查询字符串方法在获取请求中传递参数(或者最好的选择是为此需要使用 json-body 参数)
2.在flask框架中解析它的最佳方法是什么?
my_ip/items?sort=+severity&sort=-color&filter=???
解决方案
这篇文章就如何处理它提供了一些很好的建议:分页、过滤和排序
例如:
- 仅指定排序键:
sort=key1,key2,key3
key1
是第一个键,key2
是第二个键,等等。- 服务器默认排序方向
- 指定了一些排序方向:
sort=key1:asc,key2,key3
- 默认任何没有对应方向的排序键
key1
是第一个键(升序),key2
是第二个键(服务器默认的方向),等等。- 指定相同数量的排序键和方向:
sort=key1:asc,key2:desc,key3:asc
- 每个键都与对应的方向配对
key1
是第一个键(升序),key2
是第二个键(降序),等等。
推荐阅读
- vba - 是否有 View.GetOutline() 的替代方法可以提供更好的轮廓?
- c# - 组合框在搜索文本时选择第一项
- java - 如何设计一个浮动按钮,如附图所示
- css - 使用所有水平空间的基于列的 flexbox
- java - 找不到“build-helper-maven-plugin”?
- cypress - cypress.io 如何在重新渲染列表本身时删除“n”次的项目,这是不可预测的
- javascript - 客户端渲染的虚拟 DOM 树不匹配
- pagespeed - 已安装本机 Lazyload 插件,但 PageSpeed 工具未检测到
- c++ - 运算符>>没有定义为什么?
- git - 特定文件夹的 Git fsck