
DRF框架(十四)——过滤Filtering,排序
首先,确保 打开你的 然后在 接下来,设置你的视图类,添加 使用时,可以通过URL params来指定过滤条件。例如: 在你的视图类中,导入 配置 需要注意的是,排序参数是通过请求的查询字符串传递的,例如:
发布日期:2021-05-24 10:59:01
浏览次数:10
分类:精选文章
本文共 1501 字,大约阅读时间需要 5 分钟。
Django数据过滤与排序实例详解
在Django开发过程中,对列表数据进行过滤和排序是非常常见的需求。Django REST框架提供了一些强大的工具来实现这一点,以下我们将分享一些实用的配置方法和使用技巧。
一、过滤(Filtering)
当你需要根据特定字段对数据进行过滤时,Django的django-filters
扩展会帮到你。通过在项目中安装相应的包,然后在配置文件中进行相应的设置,你可以轻松地对API视图添加过滤功能。
django_filters
已经安装:pip install django-filter
settings.py
文件,找到INSTALLED_APPS
数组,添加'django_filters'
:INSTALLED_APPS = [ ... 'django_filters', ...]
REST_FRAMEWORK
配置中启用Django Filter的后端:REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ( 'django_filters.rest_framework.DjangoFilterBackend', ):}
filter_fields
属性,指定可以用于过滤的字段。例如,可以指定btitle
和bread
字段:class BookListView(ListAPIView): queryset = BookInfo.objects.all() serializer_class = BookInfoSerializer filter_fields = ('btitle', 'bread')
http://127.0.0.1:8000/books/?btitle=西游记
二、排序(Sorting)
当你需要对列表数据进行排序时,REST framework提供了OrderingFilter
过滤器。以下是如何使用它的步骤:
OrderingFilter
:from rest_framework.filters import OrderingFilterclass BookListView(ListAPIView): ... filter_backends = [OrderingFilter] ordering_fields = ('id', 'bread', 'bpub_date')
ordering_fields
,指定需要支持排序的字段。比如,可以指定id
、bread
和bpub_date
字段:ordering_fields = ('id', 'bread', 'bpub_date')
http://127.0.0.1:8000/books/?ordering=-bread
这里的-bread
表示以bread
字段的降序进行排序。
关键点回顾
- 过滤:使用
filter_fields
属性指定要过滤的字段,通过URL参数传递过滤条件。 - 排序:启用
OrderingFilter
后,可以通过URL参数指定排序字段和方向,实现自定义排序。 - 配置文件:需要在
settings.py
中启用django_filters
和相应的REST framework过滤器后端。
通过以上配置,你可以轻松地对列表数据进行过滤和排序,从而提升API的灵活性和实用性。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月12日 08时08分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux——系统安全及应用(开关机安全机制、系统弱口令检测、NMAP)
2019-03-17
kafka超时错误或者发送消息失败等错误,排错方式
2019-03-17
Python3 排序函数问题
2019-03-17
Windows下配置单机Hadoop环境 pyspark
2019-03-17
git教程之远程仓库
2019-03-17
Vue路由跳转如何传递一个对象过去?
2019-03-17
sockjs-node/info?t=1462183700002 报错解决方案
2019-03-17
FI 替代相关 OSS Note 要点记录
2019-03-17
蓝桥杯---试题 算法提高 欧拉函数(数学)
2019-03-17
【网络加速】TensorRT7-开发指南中文_Plus版【1】
2019-03-17
SaltStack about The Top File 使用知识介绍
2019-03-17
网络协议和支持(一)、uuid模块
2019-03-17
numpy.vstack
2019-03-17
numpy.frombuffer()
2019-03-17
文件结束符EOF
2019-03-17
Latex 错误集合
2019-03-17
Python的内置函数(四十一)、 index()
2019-03-17