S11 day 95 RestFramework 之 视图
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 之 视图的更多相关文章
- rest-framework之视图
rest-framework之视图 本文目录 一 基本视图 二 mixin类和generice类编写视图 三 使用generics 下ListCreateAPIView,RetrieveUpdateD ...
- S11 day 94 RestFramework 之 APIView视图
VIEW视图(Django自带的) 1. url url(r'login/$', views.login.as_view()), 2.点开 as_view() , as_view()为类方法. l ...
- S11 day 96 RestFramework 之认证权限
一.设计一个简易的登录 1. 建立一个模型 class UserInfo(models.Model): username =models.CharField(max_length=) password ...
- rest-framework框架——视图三部曲
一.mixins类编写视图 1.配置url urlpatterns = [ ... re_path(r'^authors/$', views.AuthorView.as_view(), name=&q ...
- Django:RestFramework之-------视图
10.视图 GenericAPIView封装一些方法,将这些方法返回值放在类变量位置上. 1.GenericAPIView视图示例:不怎么用 from api.utils.serializers.pa ...
- RestFramework之视图组件
一.视图组件的使用 在我们自己书写视图类时需要不断书写重复冗余的代码,看起来十分繁琐不简洁易见,当然rest_framework中的视图组件帮我们做到了一些必要的步骤,使我们节省了编写冗余代码的时间. ...
- rest-framework之视图和源码解析
视图和源码解析 通过使用mixin类编写视图: from rest_framework import mixins from rest_framework import generics class ...
- S11 day 93 RestFramework 之 序列化
1. 表建模 from django.db import models # Create your models here. #文章表 class Article(models.Model): tit ...
- Django:RestFramework之-------认证
3 restframework-认证 3.1APIView 认证: 认证是否已经登陆,如果已经登陆返回元组,如果没有登陆报错 源码流程: 执行dispatch方法: def dispatch(self ...
随机推荐
- [leetcode]29. Divide Two Integers 两整数相除
Given two integers dividend and divisor, divide two integers without using multiplication, division ...
- HttpApplicationState与HttpApplication
HttpApplicationState 类的单个实例在客户端第一次从某个特定的 ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创建.对于 Web 服务器上的每个 ASP.NET 应用程序 ...
- Linux下搭建gtk+2.0开发环境
1.执行如下命令,检查系统是否已安装gtk+ pkg-config --list-all |grep gtk 若命令提示如下,则系统已安装gtk+,否则未安装. 2.若未安装,则执行如下命令进行安装 ...
- 关于神奇的浮点型double变量
1.因为double类型都是1.xxxxxxxxx(若干个0和1,二进制)乘以2的若干次幂来表示一个数,所以,和十进制的小数势必不能够一一对应,因为位数有限,总要有一个精度(两个数之间的实数是任意多的 ...
- UI小白如何快速提升自己
作为一名经历过UI学习的过来人,这些观点是自己在整个学习的过程中总结的. 希望可以对大家有所帮助,可以让刚开始接触UI的人少走弯路吧,话不多说. 快速进入主题. 那么UI小白到底如何快速提成自己呢 ...
- 01 Maven 安装与配置
Maven 安装与配置 1. Maven 介绍 Maven 翻译为 "专家","内行".Maven 是 Apache 下的一个纯 Java 开发的开源项目,它是 ...
- msys2 命令行添加镜像地址
sed -i "1iServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686" /etc/pacman.d/mi ...
- STAX项目结束总结
STAX:Support Taxonomy Management Console. 使用了MVC+WCF+jQuery+Azman.msc(权限控制)+kendoUI+SQL SERVER 2012
- [转载红鱼儿]delphi 实现微信开发(1)
大体思路: 1.用户向服务号发消息,(这里可以是个菜单项,也可以是一个关键词,如:注册会员.) 2.kbmmw web server收到消息,生成一个图文消息给微信,在图文消息中做好自己的url,在u ...
- 2018.06.29 NOIP模拟 边的处理(分治+dp)
边的处理(side.cpp) [问题描述] 有一个 n 个点的无向图,给出 m 条边,每条边的信息形如<x,y,c,r><x,y,c,r><x,y,c,r>. 给出 ...