DRF框架之视图方法的几个封装好的模块介绍(第三天)
1.DRF框架给我们封装好了好多层模块的 来实现简便接口的编写
# from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, ListModelMixin, \
# DestroyModelMixin
# from rest_framework.generics import GenericAPIView
#
#这里是加载drf框架的mixins 模块的功能
#ListModelMixin 是给get 获取多本书接口使用
#CreateModelMixin 是给post接口用的
#UpdateModelMixin 是给put 接口使用的
#RetrieveModelMixin 是给get 单本书的接口使用的
#DestroyModelMixin 是给delete 接口使用的 #GenericAPIView 注意!!!!使用mixins模块一定也要加载这个模块,不然无法通过django的验证功能 #
# class Booksview(CreateModelMixin, ListModelMixin, GenericAPIView): # serializer_class = BookSerializers #使用序列化功能,之前写好的显示的内容
# queryset = models.Book.objects.all() #对数据库的那个表进行操纵使用
#
# def post(self, request, *args, **kwargs):
# return self.create(request, *args, **kwargs) #post的接口
#
# def get(self, request, *args, **kwargs):
# return self.list(request, *args, **kwargs) #get所有数据的接口
#
#
# class Bookview(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,GenericAPIView):
# serializer_class = BookSerializers
# queryset = models.Book.objects.all()
#
# def put(self, request, *args, **kwargs): #put接口 修改内容
# return self.update(request, *args, **kwargs)
#
# def get(self, request, *args, **kwargs): #get单个信息的接口
# return self.retrieve(request, *args, **kwargs)
#
# def delete(self, request, *args, **kwargs): #delete 接口删除用的
# return self.destroy(request, *args, **kwargs)
通过mixin组件实现
2. 更简便的方法来实现五种请求方式
#第三层:使用generics 下ListCreateAPIView,RetrieveUpdateDestroyAPIView # from rest_framework.generics import ListAPIView,ListCreateAPIView,RetrieveUpdateDestroyAPIView,DestroyAPIView,CreateAPIView
# #它有两个接口,一个是获取所有,一个是新增
# class BooksView(ListCreateAPIView):
# serializer_class=BookSerializer
# queryset=models.Book.objects.all()
#
# class BookView(RetrieveUpdateDestroyAPIView):
# serializer_class=BookSerializer
# queryset=models.Book.objects.all()
ListCreateAPIView,RetrieveUpdateDestroyAPIView
3. 最终使用的也是最难的,灵活度最高的
#最终,一般用的时候,会经常用ViewSetMixin
#ViewSetMixin干了什么事?重写了as_view方法
# from rest_framework.viewsets import ViewSetMixin
# class Publish(ViewSetMixin,APIView):
#
# def aa(self,request):
# return HttpResponse('aa')
# def bb(self,request):
# return HttpResponse('aa')
# def cc(self,request):
# return HttpResponse('aa')
# def dd(self,request):
# return HttpResponse('aa')
# def get_all(self,request):
# pass
# def get_one(self,request):
# pass
# def create(self,request):
# pass
# def create_by_id(self,request):
# pass
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url(r'^books/$', views.BooksView.as_view()),
# url(r'^books/(?P<pk>\d+)', views.BookView.as_view()), # url(r'^test', views.Publish.as_view({'get':'aa'})),
# url(r'^xx', views.Publish.as_view({'post':'cc'})),
路由层配置的
DRF框架之视图方法的几个封装好的模块介绍(第三天)的更多相关文章
- 【DRF框架】视图组件
基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, ...
- DRF框架之视图类
前后端分离的项目 >: pip3 install djangorestframework 一.视图类传递参数给序列化类 视图层:views.py 需求: (1)在视图类中实列化对象是,可以设 ...
- drf框架中所有视图及用法
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views ...
- laravel5.5框架中视图间如何共享数据?视图间共享数据的两种方法
laravel框架中视图间共享数据有两种,一种是用视图门面share()方法实现,另一种是用视图门面composer() 方法实现,那么,两种方法的实现究竟是怎样的呢?让我们来看一看接下来的文章内容. ...
- Laravel5.4框架中视图共享数据的方法详解
本文实例讲述了Laravel5.4框架中视图共享数据的方法.分享给大家供大家参考,具体如下: 每个人都会遇到这种情况:某些数据还在每个页面进行使用,比如用户信息,或者菜单数据,最基本的做法是在每个视图 ...
- DRF框架中链表数据通过ModelSerializer深度查询方法汇总
DRF框架中链表数据通过ModelSerializer深度查询方法汇总 一.准备测试和理解准备 创建类 class Test1(models.Model): id = models.IntegerFi ...
- DRF框架(五)——context传参,二次封装Response类,两个视图基类(APIView/GenericAPIView),视图扩展类(mixins),子类视图(工具视图),视图集(viewsets),工具视图集
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查 ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
- DRF框架之 serializers 序列化组件
1. 什么是序列化,其实在python中我们就学了序列化工具json工具,就是吧信息存为类字典形式 2. DRF框架自带序列化的工具: serializers 3. DRF框架 serializers ...
随机推荐
- 转:Excel—“撤销工作表保护密码”的破解并获取原始密码
在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能, ...
- 前后端数据交互处理基于原生JS模板引擎开发
json数据错误处理,把json文件数据复制到----> https://www.bejson.com/ 在线解析json 这样能直观的了解到是否是json数据写错,在控制台打断点,那里错误打那 ...
- java8_api_集合框架
泛型表示 E,K,V,T 集合框架1 集合的概念 集合的好处 集合的层次结构 集合的概念 集合是一个包含一组对象的对象,也称为容器 集合中的 ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165308 张士洋
2018-2019-2 <网络对抗技术>Exp0 Kali安装 Week1 20165308 张士洋 1.进入官网下载Kali Linux VirtualBox版本的镜像文件. 2.解压并 ...
- python selenium-webdriver 执行js (八)
使用python selenium 做自动化测试的时候其实我基本没有使用过执行js,只是在后来使用selenium来爬虫的时候使用到了,所以我在这里也就拿出来简单的介绍一下如何执行js. execut ...
- 第三章 C#程序结构 (3.3 循环结构)
(1) while循环 当表达式为真,则执行下面的语句:语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句:然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环. [ ...
- MSMQ .NET下的应用
Message Message是MSMQ的数据存储单元,我们的用户数据一般也被填充在Message的body当中,因此很重要,让我们来看一看其在.net中的体现,如图: 在图上我们可以看见,Messa ...
- 【Jmeter】Address already in use : connect &&Permission denied: connect 解决方案
Address already in use : connect 该问题的原因为: Windows 提供给 TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收他们.就导致我们在短 ...
- ObjectARX2012+ObjectARX Wizards2012+AutoCAD2012+MVS2008 环境配置
1 版本选择 ObjectARX本身采用的MVS编译平台,因此选择ObjectARX的编译平台作为二次开发的平台,兼容性最好,当然别的平台也不是一定不可以.目前已知的对应关系如下: R15 -- ...
- Kubernetes生态工具
Helm Helm 是 Kubernetes 的包管理器,它是查找.共享和使用为 Kubernetes 开发的软件的最佳方式.Helm Charts 可用于定义.安装和升级复杂的 Kubernetes ...