django rest framework 过滤 lim分页
一.过滤
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分页的更多相关文章
- Django REST framework基础:分页
DRF分页组件 为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输 ...
- Django Rest framework 之 分页
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- Django Rest Framework源码剖析(七)-----分页
一.简介 分页对于大多数网站来说是必不可少的,那你使用restful架构时候,你可以从后台获取数据,在前端利用利用框架或自定义分页,这是一种解决方案.当然django rest framework提供 ...
- Django rest framework(7)----分页
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- django rest framework实现分页功能
在web开发中很多需求都需要实现分页功能,然而 Django Rest Framework 自带的分页功能,只能在 mixins.ListModelMixin and generics.Generic ...
- django: django rest framework 分页
django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战 版权声 ...
- [Django REST framework - 自动生成接口文档、分页]
[Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...
- 用Django Rest Framework和AngularJS开始你的项目
Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...
- Django REST framework+Vue 打造生鲜超市(四)
五.商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django res ...
随机推荐
- ubuntu下vscode认识 system("pause")的解决办法
linux下运行c++程序时,希望控制台不会输出后马上消失. 在windows系统下,用如下语句: #include <cstdlib> system("pause") ...
- luoguP5283 [十二省联考2019]异或粽子
题意 类似超级钢琴,找最优解用可持久化trie. code: #include<bits/stdc++.h> using namespace std; #define re registe ...
- Spring Cloud Alibaba Sentinel对RestTemplate的支持
Spring Cloud Alibaba Sentinel 支持对 RestTemplate 的服务调用使用 Sentinel 进行保护,在构造 RestTemplate bean的时候需要加上 @S ...
- ActiveMQ基础使用
概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...
- python合并视频
视频合并 输入为:包含有视频的文件夹(注意路径:如 D:\\moves\\joy 双斜杠).合并后内容的名字如(我的合并视频 不用加.mp4) 输出为:我的合并视频.mp4+一个音频 ...
- Gin框架 - 数据绑定和验证
概述 上篇文章分享了 Gin 框架使用 Logrus 进行日志记录,这篇文章分享 Gin 框架的数据绑定与验证. 有读者咨询我一个问题,如何让框架的运行日志不输出控制台? 解决方案: engine : ...
- 【测试方法】Web测试中bug定位基本方法
知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...
- 在 Javascript 中,为什么给 form 添加了 onsubmit 事件,为什么 IE7/8 还是会提交表单?
参考地址:http://stackoverflow.com/questions/4078245/onsubmit-return-false-has-no-effect-on-internet-expl ...
- Redhat6.6替换Centos Yum源
1.删除当前系统自带的yum [root@reddhat6_155_201 ~]# rpm -qa |grep yum yum-rhn-plugin--.el6.noarch yum-utils--. ...
- JSTL+EL表达式+JSP自定义框架案例
不会框架不要紧,我带你自定义框架 前言:这标题说的有点大了,当一回标题党,之前在学JSP的时候提到了JSTL和EL表达式,由于一直钟情于Servlet,迟迟没有更新别的,这回算是跳出来了.这回放个大招 ...