一.过滤

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

2.导入模块

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

3.一种简单的过滤:

class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)filter_fields = ('title', 'price')

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

自定义过滤

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

class ProductFilter(filters.FilterSet):# 最小min_price = filters.NumberFilter(field_name="price", lookup_expr="gte")# 最大max_price = filters.NumberFilter(field_name="price", lookup_expr="lte")# 包含name = filters.CharFilter(field_name="title", lookup_expr="icontains")# 通过?字段自定义过滤class Meta:model = Bookfields = ["min_price", "max_price", "name"]

BookViews

class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定义过滤类filter_class = ProductFilter

LimitOffset分页

引入模块

from rest_framework.pagination import LimitOffsetPagination

输入代码

class P1(LimitOffsetPagination):max_limit = 3default_limit = 2# 从offset开始访问的下几个limit_query_param = "limit"# 定义从表中的offset开始计算offset_query_param = "offset"class IndexView2(APIView):def get(self, request, *args, **kwargs):user_list = Book.objects.all()p1=P1()page_user_list = p1.paginate_queryset(queryset=user_list, request=request, view=self)print("打印的数据", page_user_list)ser = BookSerializer(instance=page_user_list, many=True)# return Response(ser.data)# 自带分页return p1.get_paginated_response(ser.data)class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定义过滤类filter_class = ProductFilterfilter_fields = ('title', 'price')# pagination_class = MyPageNumberPagination# authentication_classes = [UserAuth]# permission_classes = [UserPerm]

转载于:https://www.cnblogs.com/zhangqing979797/p/10117613.html

django rest framework 过滤 lim分页相关推荐

  1. 如何在 Django REST Framework 中对分页结果过滤和排序?

    作者 | 大江狗  责编 | 张文 来源 | Python Web 与 Django 开发 (ID:Python_Web_Django) 在本篇文章中我们将向你演示如何在 Django REST Fr ...

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

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

  3. Django REST Framework教程(10): 限流(throttle)详解与示例

    在前面的DRF系列教程中,我们以博客为例介绍了序列化器(Serializer), 并使用APIView和ModelViewSet开发了针对文章资源进行增删查改的完整API端点,并详细对权限.认证(含j ...

  4. Django rest framework之限流Throttling、内置过滤功能及第三方过滤功能及分页Pagination

    文章目录 1.限流Throttling 1.1.自定义频率类 1.1.1.编写频率类 1.1.2.全局使用 1.1.3.局部使用 1.2.内置频率类 1.2.1.根据用户ip限制 1.2.2.限制匿名 ...

  5. Django REST framework的一些奇巧淫技(干货!!!)

    开始之前,假设你已经有Django和Django REST framework的一些基础了 mixins,ViewSet和routers配合使用 minxis的类有5种 CreateModelMixi ...

  6. Django REST framework 1

    Django REST framework Django REST framework官方文档:点击  中文文档:点击 安装djangorestframework:pip3 install djang ...

  7. DRF (Django REST framework) 框架介绍(3)

    DRF中的Request 与 Response 1. Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST fra ...

  8. Django Rest Framework(一)

    一.什么是RESTful REST与技术无关,代表一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移". R ...

  9. Django REST framework API开发

    REST 介绍 RESTful API 设计 实现API的两种方式 FBV 视图函数 urlpatterns = [url(r'^user/$', views.user),url(r'^user/ad ...

最新文章

  1. IBM db2安装好了以后,启动不了服务
  2. Ruby Cucumber环境
  3. 资深数据产品经理陈家崑:如何从 0 到 1 构建埋点体系
  4. IntelliJ IDEA JRebel Maven Tomcat 实现热部署
  5. 八、探索性数据分析——数字化探索
  6. superset数据集birth_names的负时间戳处理
  7. python直接连接oracle_python连接oracle
  8. 为什么公司要对员工的薪资保密?
  9. html5 职工入职后台管理系统_10个酷炫的后台模板
  10. 图像变形功能的应用: 在线修整发型
  11. c# gerber文件读取_gerber文件查看器|gerber文件查看工具(GerbView)下载 v7.71 免费版 - 121下载站...
  12. html中引入的图标库,动态引入阿里图标库
  13. 【应用时间序列分析】第一章 时间序列分析简介
  14. 怎样做项目计划(转载)
  15. html单标签和双标签汇总
  16. mysql表id的数据类型是_MySQL表中的数据类型
  17. uni-app开发小程序-引用腾讯地图选点
  18. 杜伽K320W键盘使用手册
  19. substance painter学习2——新建项目
  20. 语音技术25年:人类还是无法和自己的电脑进行对话……

热门文章

  1. python开发客户端_python用700行代码实现http客户端
  2. 嵌入式C语言基础链表
  3. java Math 方法
  4. figma下载_Figma和ProtoPie中的原型制作,比较
  5. 小姐姐:如何参与大型开源项目-Taro 共建
  6. 福利 | 抽奖送现金送书《Web前端工程师修炼之道》
  7. shell编程系列20--文本处理三剑客之awk常用选项
  8. 关于敏捷开发方法(Agile Software Development)的阅读笔记
  9. 服务治理·理论篇(一)
  10. 北京Uber优步司机奖励政策(3月11日)