视图:
a. django
class Test(View):
...
b. rest_framework
class Test(APIView):
...
c. GenericAPIView 一般不用这个类来做视图 from rest_framework.generics import GenericAPIView
class ViewView(GenericAPIView):
queryset = models.Role.objects.all()
serializer_class = PagerSerializer
pagination_class = PageNumberPagination def get(self,reuqest,*args,**kwargs):
#获取数据 models.Role.objects.all()
roles = self.get_queryset()
pager_roles = self.paginate_queryset(roles)
#序列化
self.get_serializer(instance=pager_roles,many=True)
return Response(ser.data) d. GenericViewSet(ViewSetMixin, generics.GenericAPIView) 继承两个父类 #需要路由传参数 url(r'^(?P<version>[v1|v2]+)/v1/$',views.ViewView.as_view({'get':'list','post':'post_list'})),
#参数传递给 ViewView get方法执行list post方法执行post_list
from rest_framework.viewsets import GenericViewSet
class ViewView(GenericViewSet):
def list(self,request,*args,**kwargs):
return Response('GET')
def post_list(self,request,*args,**kwargs):
return Response('POST') e. ModelViewSet(
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.updateModelMinxin,
mixins.DestroyModelMinxin,
mixins.ListModelMixin,
GenericViewSet) #需要路由传参数 url(r'^(?P<version>[v1|v2]+)/v1/(?P<pk>\d+)/$',views.ViewView.as_view({'get':'retrieve','delete':'destroy','put':'update','patch':'partial_update'})),
# 继承ModelViewSet 所有的 增删改查的功能都有了
# 如果是get请求 retrieve获取单条数据 根据传的参数pk来查询
# 如果是delete请求 destroy删除数据
# 如果是put请求 update更新数据
# 如果是patch请求 partial_update 部分更新数据
# list 查询所有数据
# create 增加数据
# 需要关注路由系统 {'get':'retrieve','delete':'destroy','put':'update','patch':'partial_update'} {'get':'list','post':'post_list'}
from rest_framework.viewsets import ModelViewSet
class ViewView(ModelViewSet):
queryset = models.Role.objects.all()
serializer_class = PagerSerializer
pagination_class = PageNumberPagination 总结:
- 大部分使用 APIView
- 也可以使用 GenericViewSet 在路由中区分get,post
- 基本的增删改查实现 继承 ModelViewSet
- 增删 继承GenericViewSet, CreateModelMixin,DestroyModelMinxin
- 复杂逻辑 继承GenericViewSet 或者 APIView

  

Django rest-framework框架-组件之视图的更多相关文章

  1. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  2. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  3. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  4. [Django REST framework - 序列化组件、source、钩子函数]

    [Django REST framework - 序列化组件.source.钩子函数] 序列化器-Serializer 什么是rest_framework序列化? 在写前后端不分离的项目时: 我们有f ...

  5. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  6. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  7. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  8. Django REST framework 基本组件

    一.序列化组件 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式.我们可以通过声明与Django forms ...

  9. Django rest framework(8)---- 视图和渲染器

    django rest framework 之视图 序列化器    PagerSerialiser from rest_framework import serializers from api im ...

  10. django的rest framework框架——分页、视图、路由、渲染器

    一.rest framework的分页 1.使用rest framework内置类PageNumberPagination实现分类 from django.conf.urls import url f ...

随机推荐

  1. unless it is in a subquery contained in a HAVING clause or a select list.

    sql查询报错: An aggregate may not appear in the WHERE clause unless it is in asubquery contained in a HA ...

  2. MongoDB基础笔记

    MongoDB show dbs 查看当前的数据库 use test 选库 show tables/collections 查看当前库下的文档 db.help() 查看帮助 db.createColl ...

  3. Java使用JDBC连接数据库逐条插入数据、批量插入数据、以及通过SQL语句批量导入数据的效率对比

    测试用的示例java代码: package com.zifeiy.test.normal; import java.io.File; import java.io.FileOutputStream; ...

  4. iOS笔试题03

    1. When to use NSMutableArray and when to use NSArray? 1> 当数组元素需要动态地添加或者删除时,用NSMutableArray 2> ...

  5. Docker从入门到动手实践

    一些理论知识,我这里就不累赘了 docker 入门资料,参考:https://yeasy.gitbooks.io/docker_practice/content/ Dockerfile常用命令,图片来 ...

  6. CentOS 7启动与切换图形界面

    安装图形界面 默认情况下是不会安装图形界面的,所以需要自己手动安装,步骤如下: 1.开启系统,以root身份进入 安装X(X Window System),命令如下: yum groupinstall ...

  7. Hyper-V VM Generation 2 - Can not boot from .ISO (Hyper-V Gen2不能從DVD啓動 ISO)

    Q: Hyper-V VM Generation 2 - Can not  boot from .ISO (Hyper-V Gen 2不能從DVD啓動 ISO ) A: Disable secure ...

  8. excel自学笔记 from av50264533

    1.函数公式 MINUTE(serial_number)  函数解读 Serial_number 表示一个时间值,其中包含要查找的分钟  函数公式 NOW()  函数解读 显示出现在的时间 计算通话时 ...

  9. Ubuntu linux 下的基本操作

    防火墙相关: 关闭防火墙: ufw disable

  10. Seq2Seq模型与注意力机制

    Seq2Seq模型 基本原理 核心思想:将一个作为输入的序列映射为一个作为输出的序列 编码输入 解码输出 解码第一步,解码器进入编码器的最终状态,生成第一个输出 以后解码器读入上一步的输出,生成当前步 ...