一.过滤

1.首先引用diango 自带的过滤配置

2.导入模块

  1. from django_filters.rest_framework import DjangoFilterBackend
  2. from django_filters import rest_framework as filters

3.一种简单的过滤:

  1. class BookView(ModelViewSet):
  2. queryset = Book.objects.all()
  3. serializer_class = BookSerializer
  4.  
  5. filter_backends = (DjangoFilterBackend,)
  6. filter_fields = ('title', 'price')

通过在浏览器后面带上?price=100, 就可以精确过滤

自定义过滤

通过自己创建的过滤类来实现自定义过滤

  1. class ProductFilter(filters.FilterSet):
  2. # 最小
  3. min_price = filters.NumberFilter(field_name="price", lookup_expr="gte")
  4. # 最大
  5. max_price = filters.NumberFilter(field_name="price", lookup_expr="lte")
  6. # 包含
  7. name = filters.CharFilter(field_name="title", lookup_expr="icontains")
  8. # 通过?字段自定义过滤
  9. class Meta:
  10. model = Book
  11. fields = ["min_price", "max_price", "name"]

BookViews

  1. class BookView(ModelViewSet):
  2. queryset = Book.objects.all()
  3. serializer_class = BookSerializer
  4.  
  5. filter_backends = (DjangoFilterBackend,)
  6. # 自定义过滤类
  7. filter_class = ProductFilter

LimitOffset分页

引入模块

  1. from rest_framework.pagination import LimitOffsetPagination

输入代码

  1. class P1(LimitOffsetPagination):
  2. max_limit =
  3. default_limit =
  4. # 从offset开始访问的下几个
  5. limit_query_param = "limit"
  6. # 定义从表中的offset开始计算
  7. offset_query_param = "offset"
  8.  
  9. class IndexView2(APIView):
  10. def get(self, request, *args, **kwargs):
  11. user_list = Book.objects.all()
  12. p1=P1()
  13. page_user_list = p1.paginate_queryset(queryset=user_list, request=request, view=self)
  14. print("打印的数据", page_user_list)
  15. ser = BookSerializer(instance=page_user_list, many=True)
  16. # return Response(ser.data)
  17. # 自带分页
  18. return p1.get_paginated_response(ser.data)
  19.  
  20. class BookView(ModelViewSet):
  21. queryset = Book.objects.all()
  22. serializer_class = BookSerializer
  23.  
  24. filter_backends = (DjangoFilterBackend,)
  25. # 自定义过滤类
  26. filter_class = ProductFilter
  27.  
  28. filter_fields = ('title', 'price')
  29. # pagination_class = MyPageNumberPagination
  30.  
  31. # authentication_classes = [UserAuth]
  32. # permission_classes = [UserPerm]

django rest framework 过滤 lim分页的更多相关文章

  1. Django REST framework基础:分页

    DRF分页组件 为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输 ...

  2. Django Rest framework 之 分页

    RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...

  3. Django Rest Framework源码剖析(七)-----分页

    一.简介 分页对于大多数网站来说是必不可少的,那你使用restful架构时候,你可以从后台获取数据,在前端利用利用框架或自定义分页,这是一种解决方案.当然django rest framework提供 ...

  4. Django rest framework(7)----分页

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  5. django rest framework实现分页功能

    在web开发中很多需求都需要实现分页功能,然而 Django Rest Framework 自带的分页功能,只能在 mixins.ListModelMixin and generics.Generic ...

  6. django: django rest framework 分页

    django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战   版权声 ...

  7. [Django REST framework - 自动生成接口文档、分页]

    [Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...

  8. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

  9. Django REST framework+Vue 打造生鲜超市(四)

    五.商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django res ...

随机推荐

  1. ubuntu下vscode认识 system("pause")的解决办法

    linux下运行c++程序时,希望控制台不会输出后马上消失. 在windows系统下,用如下语句: #include <cstdlib> system("pause") ...

  2. luoguP5283 [十二省联考2019]异或粽子

    题意 类似超级钢琴,找最优解用可持久化trie. code: #include<bits/stdc++.h> using namespace std; #define re registe ...

  3. Spring Cloud Alibaba Sentinel对RestTemplate的支持

    Spring Cloud Alibaba Sentinel 支持对 RestTemplate 的服务调用使用 Sentinel 进行保护,在构造 RestTemplate bean的时候需要加上 @S ...

  4. ActiveMQ基础使用

    概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...

  5. python合并视频

    视频合并 输入为:包含有视频的文件夹(注意路径:如   D:\\moves\\joy   双斜杠).合并后内容的名字如(我的合并视频      不用加.mp4) 输出为:我的合并视频.mp4+一个音频 ...

  6. Gin框架 - 数据绑定和验证

    概述 上篇文章分享了 Gin 框架使用 Logrus 进行日志记录,这篇文章分享 Gin 框架的数据绑定与验证. 有读者咨询我一个问题,如何让框架的运行日志不输出控制台? 解决方案: engine : ...

  7. 【测试方法】Web测试中bug定位基本方法

    知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...

  8. 在 Javascript 中,为什么给 form 添加了 onsubmit 事件,为什么 IE7/8 还是会提交表单?

    参考地址:http://stackoverflow.com/questions/4078245/onsubmit-return-false-has-no-effect-on-internet-expl ...

  9. Redhat6.6替换Centos Yum源

    1.删除当前系统自带的yum [root@reddhat6_155_201 ~]# rpm -qa |grep yum yum-rhn-plugin--.el6.noarch yum-utils--. ...

  10. JSTL+EL表达式+JSP自定义框架案例

    不会框架不要紧,我带你自定义框架 前言:这标题说的有点大了,当一回标题党,之前在学JSP的时候提到了JSTL和EL表达式,由于一直钟情于Servlet,迟迟没有更新别的,这回算是跳出来了.这回放个大招 ...