1. 基于APIVIEW视图序列化

 

我们会发现两个类有好多重复的代码.所以我们引入了GenericAPIView (继承了APIView)

2.Generic ApiVIew和 ListModelMixin混合类

url路由配置

    url(r'school/$', views.SchoolView.as_view(), name='article-detail'),
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin

#学校视图(继承基础工具类阶段)
class SchoolView(GenericAPIView,ListModelMixin):
'''
GenericAPIView
只需要配置
queryset和serialize_class
'''
queryset = models.School.objects.all()
serializer_class = app01_serializer.SchoolSerializer def get(self,request,*args,**kwargs):
return self.list(request,*args,**kwargs)

输出结果:

 3. GenetricAPIView + RetrieveMixin  获取一条数据

    url(r'^comment/(?P<pk>\d+)/$', views.CommentDetailView.as_view()),
from rest_framework.mixins import RetrieveModelMixin

class CommentDetailView(GenericAPIView,RetrieveModelMixin):   #mixin混合类.

    queryset = models.Comment.objects.all()
serializer_class =app01_serializer.CommentSerializer def get(self,request,pk):
return self.retrieve(request,pk)

输出结果:

 4. GenericApiView + Mixin 增删改查.

# . 评论详情操作某一条数据

from rest_framework.mixins import RetrieveModelMixin,DestroyModelMixin,UpdateModelMixin

class CommentDetailView(GenericAPIView,RetrieveModelMixin,DestroyModelMixin,UpdateModelMixin):   #mixin混合类.

    queryset = models.Comment.objects.all()
serializer_class =app01_serializer.CommentSerializer

  查:
def get(self,request,pk):
return self.retrieve(request,pk)

  
def delete(self,request,pk):
return self.destroy(request,pk) def perform_destory(self,instance):
instance.delete()
  改
def put(self,request,pk):
return self.update(request,pk)

输出结果:

OK

5.  ListCreateAPIView和RetreveUpdateDestory

# 5 ListCreateAPIVIew 和RetreveUpdateDestory
from rest_framework.generics import ListCreateAPIView,RetrieveUpdateDestroyAPIView class CommentView(ListCreateAPIView): #获取所有 , 添加.
queryset = models.Comment.objects.all()
serializer_class = app01_serializer.CommentSerializer class CommentDetailView(RetrieveUpdateDestroyAPIView): #改,查和删除
queryset = models.Comment.objects.all()
serializer_class = app01_serializer.CommentSerializer

输出结果:

 6. GenericViewSet   ( ListCreateAPIView和RetreveUpdateDestory

URL

    url(r'^comment/$', views.CommentView.as_view({
"get":"list",
"post":"create"
})), url(r'^comment/(?P<pk>\d+)/$', views.CommentView.as_view({
"get":"retrieve",
"put":"update",
"delete":"destroy"
})),
from rest_framework.viewsets import ModelViewSet
class CommentViewSet(ModelViewSet):
queryset = models.Comment.objects.all()
serializer_class = app01_serializer.CommentSerializer

S11 day 95 RestFramework 之 视图的更多相关文章

  1. rest-framework之视图

    rest-framework之视图 本文目录 一 基本视图 二 mixin类和generice类编写视图 三 使用generics 下ListCreateAPIView,RetrieveUpdateD ...

  2. S11 day 94 RestFramework 之 APIView视图

    VIEW视图(Django自带的) 1.  url url(r'login/$', views.login.as_view()), 2.点开 as_view() , as_view()为类方法.  l ...

  3. S11 day 96 RestFramework 之认证权限

    一.设计一个简易的登录 1. 建立一个模型 class UserInfo(models.Model): username =models.CharField(max_length=) password ...

  4. rest-framework框架——视图三部曲

    一.mixins类编写视图 1.配置url urlpatterns = [ ... re_path(r'^authors/$', views.AuthorView.as_view(), name=&q ...

  5. Django:RestFramework之-------视图

    10.视图 GenericAPIView封装一些方法,将这些方法返回值放在类变量位置上. 1.GenericAPIView视图示例:不怎么用 from api.utils.serializers.pa ...

  6. RestFramework之视图组件

    一.视图组件的使用 在我们自己书写视图类时需要不断书写重复冗余的代码,看起来十分繁琐不简洁易见,当然rest_framework中的视图组件帮我们做到了一些必要的步骤,使我们节省了编写冗余代码的时间. ...

  7. rest-framework之视图和源码解析

    视图和源码解析 通过使用mixin类编写视图: from rest_framework import mixins from rest_framework import generics class ...

  8. S11 day 93 RestFramework 之 序列化

    1. 表建模 from django.db import models # Create your models here. #文章表 class Article(models.Model): tit ...

  9. Django:RestFramework之-------认证

    3 restframework-认证 3.1APIView 认证: 认证是否已经登陆,如果已经登陆返回元组,如果没有登陆报错 源码流程: 执行dispatch方法: def dispatch(self ...

随机推荐

  1. 本地Maven环境配置

    本地Maven环境配置 下载配置文件:http://10.1.10.138:6060/root/DevelopmentSpecification/archive/master.zip 解压master ...

  2. python使用input()来接受字符串时一直报错“xxx is not defined”

    报错信息: “Please input your guess: gussTraceback (most recent call last):  File "coinGuessGame.py& ...

  3. UI设计如何做好排版?你可以学习一下格式塔原理

    格式塔是一种视觉感知的理论,是研究人们视觉如何将元素组织成群体或整体,从而视觉上进行分类,在设计中,我们使用格式原理能使得我们设计更科学性,更具吸引力.通过格式塔效应,去处理设计中的点.线.面.颜色. ...

  4. [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件

    问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ...

  5. Reactor 模型(一)基本并发编程模型

    Reactor 模型(一)基本并发编程模型 Netty 系列目录 (https://www.cnblogs.com/binarylei/p/10117436.html) 在讲解 Reactor 线程模 ...

  6. ListView单行刷新

    之前要改变某一行ListView内容或者显示出删除按钮等,都要adapter.notifyDataSetChanged();刷新一下,数据少还可以,数据多的时候明显会消耗性能,单独刷新某一行就不会了, ...

  7. Spring Boot集成Quartz注入Spring管理的类

    摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...

  8. 如何通过cmd命令进入到某个硬盘的文件夹

    1.使用快捷键win+R打开运行窗口,并输入cmd回车 2.进入到某个磁盘:在命令提示符中输入d:(代表的的是进入D盘的根目录)并回车 3.接着在cmd中输入dir(dir是directory目录的简 ...

  9. 2018.10.19 bzoj1584: Cleaning Up 打扫卫生(线性dp)

    传送门 dp妙题. 考虑到每个位置分一组才花费nnn的贡献. 因此某一段不同的数的个数不能超过sqrt(n)sqrt(n)sqrt(n),于是对于当前的位置iii我们记pos[j]pos[j]pos[ ...

  10. hdu-1140(求距离,精度判断)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1140 思路:卫星只能消灭地面上一部分的风暴,即风暴与卫星的距离最大是卫星到地球的切线的距离,大于这个距 ...