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 ...
随机推荐
- 40 Flutter仿京东商城项目签名验证原理、签名验证算法
加群452892873 下载对应40课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml crypto: ^ SignServices.dart import 'dart:conv ...
- css简单学习属性3---css属性选择器
1:通配符 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Linux -- 如何减少IO过程中的CPU copy
四种I/O方式的对比 1. Buffered I/O read(file, tmp_buf, len); write(socket, tmp_buf, len); 上下文切换:4次 CPU copy: ...
- java大文件下载+断点续传
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路:1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...
- Centos7安装php5.6并配置php-fpm协同工作
yum install epel-release rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm yum in ...
- Mac 高效 软件
彻底卸载软件: cleanmymac 软件转移: AppDelete,选择一个软件归档,换台电脑从归档安装 finder类chrme标签页: XtraFinder
- 安卓模拟器Android SDK 4.0.3 R2安装完整图文教程
在最新的Android 4.0.3 R2模拟器中,已经加入了GPU支持,可以支持OpenGL ES 2.0标准,让开发者可以借助模拟器来测试自己的OpenGL游戏.在去年新增了摄像头支持之后,现在的新 ...
- jQuery BlockUI Plugin Demo 3(Page Blocking Examples)
This page demonstrates several ways to block the page. Each button below activates blockUI and then ...
- Python3多重继承排序原理(C3算法)
参考:https://www.jianshu.com/p/c9a0b055947b https://xubiubiu.com/2019/06/10/python-%E6%96%B9%E6%B3%95% ...
- iOS技术面试08:其他
1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的 ...