Django rest-framework框架-组件之视图
视图:
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框架-组件之视图的更多相关文章
- Django Rest framework 框架之认证使用和源码执行流程
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...
- Django REST framework框架介绍和基本使用
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...
- web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝
web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...
- [Django REST framework - 序列化组件、source、钩子函数]
[Django REST framework - 序列化组件.source.钩子函数] 序列化器-Serializer 什么是rest_framework序列化? 在写前后端不分离的项目时: 我们有f ...
- Django Rest Framework框架 ---- url控制器
Django Rest Framework框架 ---- url控制器
- web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
web前端Vue+Django rest framework 框架 生鲜电商项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...
- Django Rest framework 框架
一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...
- Django REST framework 基本组件
一.序列化组件 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式.我们可以通过声明与Django forms ...
- Django rest framework(8)---- 视图和渲染器
django rest framework 之视图 序列化器 PagerSerialiser from rest_framework import serializers from api im ...
- django的rest framework框架——分页、视图、路由、渲染器
一.rest framework的分页 1.使用rest framework内置类PageNumberPagination实现分类 from django.conf.urls import url f ...
随机推荐
- 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 ...
- MongoDB基础笔记
MongoDB show dbs 查看当前的数据库 use test 选库 show tables/collections 查看当前库下的文档 db.help() 查看帮助 db.createColl ...
- Java使用JDBC连接数据库逐条插入数据、批量插入数据、以及通过SQL语句批量导入数据的效率对比
测试用的示例java代码: package com.zifeiy.test.normal; import java.io.File; import java.io.FileOutputStream; ...
- iOS笔试题03
1. When to use NSMutableArray and when to use NSArray? 1> 当数组元素需要动态地添加或者删除时,用NSMutableArray 2> ...
- Docker从入门到动手实践
一些理论知识,我这里就不累赘了 docker 入门资料,参考:https://yeasy.gitbooks.io/docker_practice/content/ Dockerfile常用命令,图片来 ...
- CentOS 7启动与切换图形界面
安装图形界面 默认情况下是不会安装图形界面的,所以需要自己手动安装,步骤如下: 1.开启系统,以root身份进入 安装X(X Window System),命令如下: yum groupinstall ...
- 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 ...
- excel自学笔记 from av50264533
1.函数公式 MINUTE(serial_number) 函数解读 Serial_number 表示一个时间值,其中包含要查找的分钟 函数公式 NOW() 函数解读 显示出现在的时间 计算通话时 ...
- Ubuntu linux 下的基本操作
防火墙相关: 关闭防火墙: ufw disable
- Seq2Seq模型与注意力机制
Seq2Seq模型 基本原理 核心思想:将一个作为输入的序列映射为一个作为输出的序列 编码输入 解码输出 解码第一步,解码器进入编码器的最终状态,生成第一个输出 以后解码器读入上一步的输出,生成当前步 ...