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扩展类的更多相关文章

  1. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  2. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  3. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  4. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  5. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  6. Django之模型层第二篇:多表操作

    Django之模型层第二篇:多表操作 一 表关系回顾 ​ 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. ​ 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息 ...

  7. mixin 扩展类的装饰

    1,步骤: 1,自定义装饰器 # 我们自定义的装饰器: def my_decorator_1(func): def wrapper(request, *args, **kwargs): print(' ...

  8. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  9. Quartz基础调度框架-第二篇服务

    很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置  和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...

随机推荐

  1. 【Henu ACM Round #13 A】 Hulk

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟. [代码] #include <bits/stdc++.h> using namespace std; int m ...

  2. [Python] String Join

    Let's introduce a new string method, join: >>> nautical_directions = "\n".join([& ...

  3. amaze ui使用简介

    amaze ui使用简介 amaze UI 类似于bootstrap 不过比bootstrap更加轻量级 可以用来开发响应式网站,并且是移动优先的,针对移动设备开发的网站可以考虑使用这个框架 css中 ...

  4. BFC的布局规则和触发条件

    1   .BFC的含义 :          Block Formatting Contexts(BFC)                                      块级元素格式化上下 ...

  5. Easy mock - 安装配置和基本使用

    Easy-mock easy-mock是一款比较好用的接口模拟工具, 使用之前我们需要安装和配置 需要下载的内容有以下 Node Redis MongoDB Node和Redis一路点下一步就行, M ...

  6. 18/9/22NOIP模拟考

    18/9/22NOIP模拟考 其实本来是有多组数据的,出题人忘记在题面上加了   斜眼笑 期望得分:100:实际得分:100 由于种种原因,拿到题的时候已经过去了0.5h+... 然后因为这道题数据范 ...

  7. Hibernate5配置与使用具体解释

    转载请注明出处:http://blog.csdn.net/tyhj_sf/article/details/51851163 引言 Hibernate是一个轻量级的持久层开源框架,它是连接java应用程 ...

  8. Qt样式表——选择器详解(父子关系)

    在上一节中,小豆君给大家介绍了样式表的基本概念和大致用法.今天我们来详细了解下样式表中选择器的用法. 所谓选择器,就是指定你所设置的样式对哪个或哪些控件起作用. 到目前为止,Qt样式表支持CSS2中定 ...

  9. softInputMode- 软件盘监听事件

    软件盘的监听事件,如下 private final OnKeyListener mSubjectKeyListener = new OnKeyListener() { @Override public ...

  10. Qt使用第三方库

    简述 在 Qt 中经常会用到第三方库,例如:FFmpeg.OpenCV 等.第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧! 简述 第三方库 源代码 库文件 目标目录 第三方库 ...