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 ...
随机推荐
- MQ基础概念和介绍
一.中间件 MQ是一种中间件产品,至于什么是中间件,中间件能干什么,参见以下链接: http://baike.baidu.com/view/23710.htm 二.WebSphere MQ的原理 We ...
- mysql5.5以上开启慢查询
在my.ini配置文件中添加: [mysqld] #开启慢查询 slow_query_log = on #慢查询时间 long_query_time = 0.5 #记录没有使用索引的查询 log_qu ...
- 改变父元素的透明度,不影响子元素的透明度—css
1.如果我们给父元素添加opacity:0.4后,子元素的red颜色也变成了0.4的透明度, 例子如下: <!DOCTYPE html> <html> <head> ...
- Step1-有序顺序表
#include<stdio.h> #define N 100 typedef struct jcb{ ]; int arrtime; int reqtime; }jcb; jcb job ...
- UI设计如何做好排版?你可以学习一下格式塔原理
格式塔是一种视觉感知的理论,是研究人们视觉如何将元素组织成群体或整体,从而视觉上进行分类,在设计中,我们使用格式原理能使得我们设计更科学性,更具吸引力.通过格式塔效应,去处理设计中的点.线.面.颜色. ...
- mysq 日期l查询
pym=mysql(host = '#', port = 3306, user = '#',passworld='#',database='#') #根据起始和结束时间 charge_sql = 'S ...
- 从Adobe调查问卷看原型设计工具大战
近年国内外原型设计工具新品频出,除了拥趸众多的老牌Axure在RP 8之后没有什么大的动作,大家都拼了命地在出新品.今天 inVision 的 Craft 出了 2.0 的预告视频,明天 Adobe ...
- centos / debian 安装iptables服务
debian: #使用可参考 https://www.debian.cn/archives/991 #配置文件位于 /etc/iptables #重新配置使用dpkg-reconfigure ipta ...
- HTML5/CSS3基础
1. HTML 1.1 什么是HTML HTML是用来制作网页的标记语言 HTML是Hypertext Markup Language的英文缩写,即超文本标记语言 HTML语言是一种标记语言,不需要编 ...
- [转载红鱼儿]Delphi实现微信开发(3)如何使用multipart/form-data格式上传文件
开始前,先看下要实现的微信接口,上传多媒体文件,这个接口是用Form表单形式上传的文件.对我来说,对http的Form表单一知半解,还好,查到这个资料,如果你也和我一样,必须看看这篇文章. 在xali ...