VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 过滤组件、排序组件、全局异常处理、自己封装的response对象

过滤组件

查询所有才涉及到过滤,其他接口都不需要
restful规范中有一条,请求地址中带过滤条件:分页、排序、过滤统称为过滤

内置过滤类

使用内置过滤类的步骤

from rest_framework.filters import OrderingFilter,SearchFilter
必须是继承GenericAPIView+ListModelMixin的之类视图上,必须是查询所有的视图

1.配置过滤类
    filter_backends=[SearchFilter,]
2.配置过滤类的字段
    search_fields = ['name', ]
3.支持前端的访问形式
    http://127.0.0.1:8000/books/?search=三 # 只要name中或publish中有三都能搜出来

内置过滤类只能通过search写条件,如果配置了多个过滤字段,是或者的条件

image

采用第三方过滤组件

#1 安装:pip3 install django-filter
#2 注册,在app中注册django-filter
#3 全局配,或者局部配
 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
#4 视图类(局部配)
from django_filters.rest_framework import DjangoFilterBackend
class BookView(ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ('name',)  #配置可以按照哪个字段来过滤,可以跨表过滤,意思是括号里的字段可以是外键字段
PYTHON 复制 全屏

自定义过滤器

区间过滤

1.新建一个filters.py文件,在文件内自定义一个过滤类

暂略

 

相关教程