django-rest-framework框架 第二篇 之Mixin扩展类
Mixin扩展类 ['列表操作','过滤','搜索','排序']
<一>:<1>创建项目:

配置 urls 主路由

配置model文件(举个例子,就以book为模型)

当完成这步时 进行数据的 ''迁移'' 然后 '执行' 操作


<2>在views中 导入通用视图类 (只要是用mixin就要导入通用视图类)
导入通用视图类 (from rest_framework.generics import GenericAPIView)
导入mixin (from rest_framework.mixins import ListModelMixin)
定义一个类 类 中get函数 class BookListView(GenericAPIView,ListModelMixin):
def get(self,request):
return self.list(request)
<3> 创建一个序列化文件
导入 序列化 from rest_framework import serializers
导入 模型文件
定义 一个序列化的类
class BookSerializer(serializers.ModelSerializer):
class Meta: #修饰内部类
model = Book
fields = '__all__' 如下图所示

<4>在views中 导入 序列化文件from .sers import *
在views中的get函数上方 写
queryset = Book.objects.all()
serializer_class = BookSerializer
设置子路由 path('books/',BooklistView.as_view()), (books是变量不是固定)
并在setting 中添加框架INSTALLED_APPS='rest_framework'
配置子路由如图下


完成过滤 搜索 排序 的操作
<1>都是在后台过滤器中完成的
1,这里要使用Django_filters模块 没有下载的去下载 pip install django_filters 可在Windows中cmd 添加即可
2,使用Django_filters提供的后台过滤器类
在views中 get函数上方 操作程序 注意在setting中添加框架
INSTALLED_APPS 添加 'Django_filters'
导入 from django_filters.rest_framework import DjangoFilterBackend
filter_backends = [DjangoFilterBackend,SearchFilter,OrderingFilter] #用来做过滤后台的 括号内可填写 过滤后台属性
filter_fields = ['name'] #过滤 精确查找
search_fields = ['name'] #搜索 模糊查找
ordering_fields = ['price'] #排序
数据库 添加数据 越多越好!!!!!
在views中 过滤后台写 属性 如下图所示

完成过滤
导入 搜索(from rest_framework.filters import SearchFilter)
再加个搜索在 过滤后台中 如下图所示
search_fields = ['name']

完成排序
导入 OrderingFilter 放在搜索后边 即可

在 过滤后台属性中 添加OrderingFilter

完成 分页 功能
导入分页(from rest_framework.pagination import PageNumberPagination)
过滤后台属性下 写
(1) pagination_class = PageNumberPagination #分页功能
页码分页 (默认是100条数据 分页 可自定义 并继承 PageNumberPagination) 如下图所示

(2)可以在 views中 重写属性 自定义一页显示的数据 如下:
class BookPage(PageNumberPagination):
# 重写属性

① page_size = 3 #一页几条数据
重新写好代码后 将pagination_class = (重写的类名) 注:
② page_query_param = 'bw' #查找网页的参数名 默认page
③ page_size_query_param=2 #设置一页显示的数据 并自动将数据分好总页数
④ max_page_size = 2 # 一页 最大设置的数据个数 如下图所示

简化代码 class BookListView(GenericAPIView,ListModelMixin):
其中 括号内要显示两个参数 有方法合并两个参数 ListAPIView合并
导入 from rest_framework.generics import ListAPIView
将简化代码 替换
将 类中的get函数 注释 完结 续更...
django-rest-framework框架 第二篇 之Mixin扩展类的更多相关文章
- Django REST framework框架介绍和基本使用
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...
- Django Rest framework 框架之认证使用和源码执行流程
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...
- Django Rest Framework框架 ---- url控制器
Django Rest Framework框架 ---- url控制器
- web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝
web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...
- web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
web前端Vue+Django rest framework 框架 生鲜电商项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...
- Django之模型层第二篇:多表操作
Django之模型层第二篇:多表操作 一 表关系回顾 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息 ...
- mixin 扩展类的装饰
1,步骤: 1,自定义装饰器 # 我们自定义的装饰器: def my_decorator_1(func): def wrapper(request, *args, **kwargs): print(' ...
- Django Rest framework 框架
一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...
- Quartz基础调度框架-第二篇服务
很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置 和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...
随机推荐
- 在XEN上启动guest时loopback设备不足
现象: 通常出现在用户挂载了多个img到guest上,会发现无法再创建guest或者无法启动guest的现象. /var/log/xen/xen-hot-plug.log中错误如下: xenstore ...
- DbVisualizer Personal 中文乱码问题的通用解决方法
在SQL Commander中,sql语句中假设有中文.显示是口. 解决的方法例如以下: 在Tools->Tool Properties->General->Appearance-& ...
- Linq复杂对象查询
复杂的查询对象, using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- thinkphp中 Illegal offset type异常
thinkphp中 Illegal offset type异常 一.错误提示 二.解决思路 1.看出错提示中的函数为assign函数,那说明是我们在从控制器assign数据到页面的部分出现了错误 2. ...
- ElasticSearch、Kibana Web管理
ElasticSearch的Web管理 http://localhost:9200/ http://localhost:9200/cluster/health?pretty http://localh ...
- 湖南省第八届大学生计算机程序设计竞赛(A,B,C,E,F,I,J)
A 三家人 Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列, ...
- 玲珑学院 1050 - array
1050 - array Time Limit:3s Memory Limit:64MByte Submissions:494Solved:155 DESCRIPTION 2 array is an ...
- ble_app_hrs心率程序 nrf51822
所用程序为: H:\keil\ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs 上面的路径是安装sdk之后生成在keil软件所在目录 ...
- web前端响应式布局,自适应全部分辨率
写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单 ...
- 【MySQL】常见错误与经常使用命令的集锦
[背景介绍] 在使用SQL Server数据库期间,想必大家一定都有过解决各种问题的经历了.非常多时候,都会在大家的博客中看到问题与解决方式. 如今开发使用的是MySQL数据库.如今来看,发现 ...