django-drf框架中排序和查询组件
0910自我总结
django-drf框架中排序和查询组件
一查询相关
1.模糊查询
1.导入模块组件
from rest_framework.filters import SearchFilter
2.自定义视图类中的相关设置参数
from rest_framework.viewsets import ModelViewSet
from rest_framework.filters import SearchFilter
class CarModelViewSet(ModelViewSet):
queryset = .....
serializer_class = .....
search_fields = ['字段一名称','字段二名称'] #可以用()包裹,写前面的优先级大于后面
filter_backends = [SearchFilter,]
其中search_fields前面添加各种字符来限制搜索行为
^以指定内容开头=完全匹配@全文搜索(目前只支持django数据存放在mysql)$正则匹配
2.自定义查询
1.自定义条件导入模块及设置
from django_filters.rest_framework import FilterSet
from django_filters import filters
from . import models
class CarFilterSet(FilterSet):
min_price = filters.NumberFilter(field_name='类里面的字段名称', lookup_expr='gte') #gte为大于等于
max_price = filters.NumberFilter(field_name='类里面的字段名称', lookup_expr='lte')#lte为小于等于
class Meta:
model = 字段所在的类名
# brand还是实现分类
# min_price,max_price可以定义区间
fields = ['brand', 'min_price', 'max_price']
#上面的min_price以及max_price为我们提交数据的key
2.在视图层中导入
from rest_framework.viewsets import ModelViewSet
from django_filters.rest_framework import DjangoFilterBackend
class CarModelViewSet(ModelViewSet):
queryset = .....
serializer_class = .....
filter_class = CarFilterSet #我们自定义的对象,前提要将其导入到我们程序所在的窗口
filter_backends =[DjangoFilterBackend,]
二.排序
from rest_framework.viewsets import ModelViewSet
from rest_framework.filters import OrderingFilter
class CarModelViewSet(ModelViewSet):
queryset = .....
serializer_class = .....
ordering_fields = ['字段一名称','字段二名称'] #可以用()包裹,写前面的优先级大于后面
filter_backends =[DjangoFilterBackend,]
django-drf框架中排序和查询组件的更多相关文章
- django drf框架中的user验证以及JWT拓展的介绍
登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个 ...
- drf框架中分页组件
drf框架中分页组件 普通分页(最常用) 自定制分页类 pagination.py from rest_framework.pagination import PageNumberPagination ...
- DRF框架中链表数据通过ModelSerializer深度查询方法汇总
DRF框架中链表数据通过ModelSerializer深度查询方法汇总 一.准备测试和理解准备 创建类 class Test1(models.Model): id = models.IntegerFi ...
- drf框架中认证与权限工作原理及设置
0909自我总结 drf框架中认证与权限工作原理及设置 一.概述 1.认证 工作原理 返回None => 游客 返回user,auth => 登录用户 抛出异常 => 非法用户 前台 ...
- DRF框架中分页功能接口
目录 DRF框架中分页功能接口 DRF框架中分页功能接口 一.在框架中提供来三个类来实现分页功能,PageNumberPagination.LimitOffsetPagination.CursorPa ...
- drf框架中所有视图及用法
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views ...
- drf框架中jwt认证,以及自定义jwt认证
0909自我总结 drf框架中jwt 一.模块的安装 官方:http://getblimp.github.io/django-rest-framework-jwt/ 他是个第三方的开源项目 安装:pi ...
- Python的Django REST框架中的序列化及请求和返回
Python的Django REST框架中的序列化及请求和返回 序列化Serialization 1. 设置一个新的环境 在我们开始之前, 我们首先使用virtualenv要创建一个新的虚拟环境,以使 ...
- DRF框架中的异常处理程序
目录 DRF框架中自定义异常处理 一.自定义异常的原因 二.如何设置处理异常的程序 DRF框架中自定义异常处理 一.自定义异常的原因 在Django和DRF框架中都封装了很多的处理异常的程序,可以处理 ...
随机推荐
- JDK1.8的HashMap数据结构及红黑树
在JDK1.6,1.7中,HashMap的实现都是用基础的“拉链法”去实现,即数组+链表的形式.如下图:通过不同的hash值,来对数据进行分配存储. 关于HashMap的Entry长度,可以参考htt ...
- Kubernetes v1.16 发布 | 云原生生态周报 Vol. 20
作者:心贵.进超.元毅.心水.衷源.洗兵 业界要闻 Kubernetes v1.16 发布 在这次发布中值得关注的一些特性和 Feature: CRD 正式进入 GA 阶段: Admission We ...
- 创建型模式总结(2.x)
顾名思义,创建型模式的聚焦点在如何创建对象能够将对象的创建与使用最大化的分离从而降低系统的耦合度. 创建型模式可分为: 单例模式:一个类只能有一个实例对象 工厂模式: 简单工厂模式:聚焦单个产品种类的 ...
- [AWS] 02 - Pipeline on EMR
Data Analysis with EMR. Video demo: Run Spark Application(Scala) on Amazon EMR (Elastic MapReduce) c ...
- Spring入门(十四):Spring MVC控制器的2种测试方法
作为一名研发人员,不管你愿不愿意对自己的代码进行测试,都得承认测试对于研发质量保证的重要性,这也就是为什么每个公司的技术部都需要质量控制部的原因,因为越早的发现代码的bug,成本越低,比如说,Dev环 ...
- LeetCode 430. Faltten a Multilevel Doubly Linked List
题目链接:LeetCode 430. Faltten a Multilevel Doubly Linked List class Node { public: int val = NULL; Node ...
- Android Studio [跑马灯]
MainActivity package com.xdw.secondapp; import android.graphics.Paint; import android.support.v7.app ...
- Janus安装教程,ubuntu18.04系统
Janus安装教程,ubuntu18.04系统 本文介绍Jansu如何安装,操作系统为Ubuntu 18.04. (1)安装git 执行命令:“sudo apt-get install ...
- mysql创建数据库指定字符集和校对规则
mysql创建数据库的语法格式: CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] ...
- shell判断文件目录或文件是否存在
1.文件描述符 -e 判断对象是否存在 -d 判断对象是否存在,并且为目录 -f 判断对象是否存在,并且为常规文件 -L 判断对象是否存在,并且为符号链接 -h 判断对象是否存在,并且为软链接 -s ...