一.过滤

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 = BookSerializer filter_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 = Book
fields = ["min_price", "max_price", "name"]

BookViews

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

LimitOffset分页

引入模块

from rest_framework.pagination import LimitOffsetPagination

输入代码

class P1(LimitOffsetPagination):
max_limit =
default_limit =
# 从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 = BookSerializer filter_backends = (DjangoFilterBackend,)
# 自定义过滤类
filter_class = ProductFilter filter_fields = ('title', 'price')
# pagination_class = MyPageNumberPagination # authentication_classes = [UserAuth]
# 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. 201871010111-刘佳华《面向对象程序设计(java)》第八周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第八周学习总结 实验七 接口的定义与使用 实验时间 2019-10-18 第一部分:知识总结 接口的概念: ①java为了克 ...

  2. python3.5.3rc1学习七:多线程

    import threading def exampleFun(): #打印当前激活的线程数量 print(threading.active_count) #查看上面激活的线程是哪几个 print(t ...

  3. web的前台、后台、前端、后端

    前台:呈现给用户的视觉和基本的操作.后台:用户浏览网页时,我们看不见的后台数据跑动.后台包括前端,后端.前端:对应我们写的html .javascript 等网页语言作用在前端网页.后端:对应jsp. ...

  4. django登录页面设计:

    urls: """day42 URL Configuration The `urlpatterns` list routes URLs to views. For mor ...

  5. 【2019.7.25 NOIP模拟赛 T3】树(tree)(dfs序列上开线段树)

    没有换根操作 考虑如果没有换根操作,我们该怎么做. 我们可以求出原树的\(dfs\)序列,然后开线段树维护. 对于修改操作,我们可以倍增求\(LCA\),然后在线段树上修改子树内的值. 对于询问操作, ...

  6. 第04组 Alpha冲刺(6/6)

    队名:new game 组长博客:戳 作业博客:戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 协调了一下组内的工作 复习了一下SuffixAutomata 接下来的计划 实现更多的功能 ...

  7. [SpingBoot guides系列翻译]文件上传

    文件上传 这节的任务是做一个文件上传服务. 概况 参考链接 原文 thymeleaf spring-mvc-flash-attributes @ControllerAdvice 你构建的内容 分两部分 ...

  8. CentOS 7.6 安装htop

    yum -y install epel-release.noarch yum -y install htop htop 上面左上角显示CPU.内存.交换区的使用情况,右边显示任务.负载.开机时间,下面 ...

  9. Vue.js 源码分析(十五) 指令篇 v-bind指令详解

    指令是Vue.js模板中最常用的一项功能,它带有前缀v-,比如上面说的v-if.v-html.v-pre等.指令的主要职责就是当其表达式的值改变时,相应的将某些行为应用到DOM上,先介绍v-bind指 ...

  10. 利用 Javascript 让 DIV 自适应屏幕的分辨率,从而决定是否显示滚动条

    直接贴代码了: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...