猎鹰分类助手
falcon-sorting的Python项目详细描述
一个小的falcon钩子来解析请求中的排序元素。
用法
使用此挂钩的最简单方法如下:
classResource:sorting_fields=("foo","bar")# List of fields allowed for sorting@falcon.before(SortingHook())defon_get(self,req,resp,user):# Here req['context']['sort'] is set
钩子将在查询参数中查找类似于sort=value
的参数。
默认的排序顺序是升序。
要按降序排序,需要在值之前指定减号(-
)。
即sort=-value
可以通过用逗号分隔来指定多个排序值。
即sort=-value1,value2
它将在可在req.context['sort']
访问的请求上下文中创建一个列表。
此列表由元组组成,其中第一个元素是要排序的字段的名称
接下来的第二个顺序(要么ASC
,要么DESC
)
即[('foo', 'ASC'), ('bar', 'DESC')]
。
配置选项
允许字段排序
出于安全原因,允许排序的字段必须在
资源的sorting_fields
属性。
钩子将丢弃其中未定义的所有字段。
默认排序顺序
可以通过设置资源中的default_sorting
属性来指定默认排序顺序。
此属性必须是符合我们对请求参数的约定的字符串或元组。
指定为默认顺序的属性也必须是sorting_fields
的一部分。
示例:
default_sorting='-foo'# ordefault_sorting=('foo','-bar')
挂钩配置
一个参数可以传递给钩子:
- sort_query_key:查询中用于排序数据的键的名称。默认值:
sort
。
示例:
@falcon.before(PaginationFromRequestHook(sort_query_key='order',))defon_get(self,req,resp,user):# Get request