django-rest-framework框架 第二篇 之Mixin扩展类

摘要:
Mixin扩展类['列表操作','过滤','搜索','排序']:创建项目:配置urls主路由配置model文件(举个例子,就以book为模型)当完成这步时进行数据的''迁移''然后'执行'操作在views中导入通用视图类(只要是用mixin就要导入通用视图类)导入通用视图类(fromrest_framework.genericsimportGenericAPIView)导入mix

Mixin扩展类 ['列表操作','过滤','搜索','排序']

<一>:<1>创建项目:

django-rest-framework框架 第二篇 之Mixin扩展类第1张

配置 urls 主路由

django-rest-framework框架 第二篇 之Mixin扩展类第2张

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

django-rest-framework框架 第二篇 之Mixin扩展类第3张

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

django-rest-framework框架 第二篇 之Mixin扩展类第4张

django-rest-framework框架 第二篇 之Mixin扩展类第5张

<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__' 如下图所示

django-rest-framework框架 第二篇 之Mixin扩展类第6张

<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'

配置子路由如图下

django-rest-framework框架 第二篇 之Mixin扩展类第7张

django-rest-framework框架 第二篇 之Mixin扩展类第8张

完成过滤 搜索 排序 的操作
<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中 过滤后台写 属性 如下图所示

django-rest-framework框架 第二篇 之Mixin扩展类第9张

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

django-rest-framework框架 第二篇 之Mixin扩展类第10张

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

django-rest-framework框架 第二篇 之Mixin扩展类第11张

在 过滤后台属性中 添加OrderingFilter

django-rest-framework框架 第二篇 之Mixin扩展类第12张

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

django-rest-framework框架 第二篇 之Mixin扩展类第13张

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

django-rest-framework框架 第二篇 之Mixin扩展类第14张

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

django-rest-framework框架 第二篇 之Mixin扩展类第15张

简化代码 class BookListView(GenericAPIView,ListModelMixin):
其中 括号内要显示两个参数 有方法合并两个参数 ListAPIView合并
导入 from rest_framework.generics import ListAPIView
将简化代码 替换
将 类中的get函数 注释 完结 续更...

免责声明:文章转载自《django-rest-framework框架 第二篇 之Mixin扩展类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nexus3 搭建maven远程仓库vue img标签图片加载时 闪烁下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

应用开发框架之——数据字典、原数据、模板

对象根据原数据动态生成,改变原数据,根据原数据动态生成的对象的属性也随之改变。 可以把原数据保存在数据表中,或者文件中。软件系统运行的时候读取这些原数据,然后动态地生成一些对象。 在管理软件里面,我们习惯性地叫数据字典。为此会专门设计一个数据字典的数据表来保存原数据。通过软件设置改变就是数据字典数据表里面的原数据。 模板,大概是c++的叫法。无论怎样,数据...

CI框架的事务开启、提交和回滚

1.运行事务 $this->db->trans_start();  // 开启事务$this->db->query('一条SQL查询...');$this->db->query('另一条查询...');$this->db->query('还有一条查询...');$this->db->trans_c...

一个超级简单的HTML模板框架源代码以及使用示例

HTML模板框架源代码 var HtmlTemplate = (function() { functionHtmlTemplate(htmlSource) { this.htmlSource =htmlSource; } HtmlTemplate.prototype.toHTML = function(params)...

Angular安装及创建第一个项目

Angular简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVW(Model-View-Whatever)、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。   AngularJ...

让C#程序run anywhere 脱离.net Framework框架环境

为了运行一个100K的C#程序,而安装100M多的.NET 框架。。。。。于是发现偷懒的方法多多,试验总结如下:现成的工具有:(1)Xenocode 的postbuidle或者vas(2)Salamander .NET Linker .(3)MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具mol...

10大H5前端框架(转)

10大H5前端框架 作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端框架,本来想拿15-20个框架来分享一下,但在跟几个前辈讨教写文章的技巧时果断被无情的打击了,所以这里我还是低调的只拿出10个框架来个大锅乱炖来简单介绍,凑够字数也就全剧终了。 原本写这篇文章想围绕着 CSS 框架来的,但因为目前界内比较...