视图:
a.过去
class PagerView(View):
pass b.现在
class Pager1View(APIView):
pass c.rest_framework 基本没用 from rest_framework.generics import GenericAPIView
class V1View(GenericAPIView):
queryset = models.Role.objects.all()
serializer_class = PagerSerialiser
pagination_class = PageNumberPagination def get(self, request, *args, **kwargs):
#获取数据
roles = self.get_queryset()
#分页
pager_roles = self.paginate_queryset(roles) #序列化
ser = self.get_serializer(instance=pager_roles, many=True) return Response(ser.data) d.GenericViewset(ViewSetMixin, genrics.GenericAPIView): urls.py
url(r'^v1/$',views.V1View.as_view({'get':'list'})), #可以改变as_view 视图中的函数中的get方法 改成了list方法 from rest_framework.viewsets import GenericViewSet
class V1View(GenericViewSet):
def list(self,request,*args,**kwargs):
return Response('') 最方便的视图方法 增删改查局部更新和GenericViewSet
视图中
from rest_framework.response import Response
from api.utils.serializers.pager import PagerSerialiser
from rest_framework.pagination import PageNumberPagination
from rest_framework.viewsets import ModelViewSet
class V1View(ModelViewSet):
"""
class ModelViewSet(
mixins.CreateModelMixin, #不需要传id
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin, #不需要传id
GenericViewSet):
"""
queryset = models.Role.objects.all()
serializer_class = PagerSerialiser
pagination_class = PageNumberPagination urls.py 路由系统
from django.contrib import admin
from django.urls import path
from api import views
from django.conf.urls import url
urlpatterns = [
url(r'^v1/$',views.V1View.as_view({'get':'list','post':'create'})),
url(r'^v1/(?P<pk>\d+)/$',views.V1View.as_view({'get':'retrieve','delete':'destroy','put':'update','patch':'partial_update'})),
] utils.serializers.pager.py
from rest_framework import serializers
from api import models
class PagerSerialiser(serializers.ModelSerializer):
class Meta:
model = models.Role
fields = "__all__"

视图总结部分

路由系统
url(r'^v1/$,views.V1View.as_view({'get':'list',post':'create'})),
url(r'^v1/(?P<pk>\d+)/$', views.V1View.as_view({'get':'retrieve','delete':'destroy','put':'update','patch':'partial_update'})), 视图
from api.utils.serializers.pager import PagerSerialiser
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from rest_framework.mixins import ListModelMixin , createModelMixin class V1View(ModelViewSet): #ModelViewSet包含增删改查局部更新和GenericViewSet
        queryset = models.Role.objects.all()
serializer_class = PagerSerialiser
pagination_class = PageNumberPagination

最新文章

  1. 为支持ASP.NET5跨平台,Jexus再添新举措
  2. 使用Spark分析拉勾网招聘信息(二): 获取数据
  3. linux下使用正确的用户名密码,本地无法连接mysql
  4. java语句类型
  5. 谈谈作为一个菜B的培训感受
  6. 【转】Maven实战(一)---Maven Build--缺少Jar包
  7. ICMP报文分析
  8. ZOJ 1171 Sorting the Photos
  9. 对比AutoResetEvent和ManualResetEvent
  10. paramiko 模块安装
  11. html5 canvas元素使用(一)
  12. CSDN文章抓取
  13. 总结一下现在关于Design Support Library的几个博客
  14. Android 手势锁的实现 让自己的应用更加安全吧
  15. 【Teradata】使用arcmain进行不落地数据迁移(管道)
  16. Android Studio 设置编辑器(Editor)的字体、字体大小
  17. 根据xlsx模板生成excel数据文件发送邮件代码
  18. CentOS 下安装 Node.js 8.11.3 LTS Version
  19. mysql性能优化(一)
  20. 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参

热门文章

  1. leetCode(24):Binary Search Tree Iterator
  2. [CSS3] Create Dynamic Styles with CSS Variables
  3. [ReactVR] Render Custom 3D Objects Using the Model Component in React VR
  4. iOS开发UI调试神器----Reveal
  5. HDU2188 悼念512汶川大地震遇难同胞——选拔志愿者
  6. ES shard unassigned的解决方法汇总
  7. [HEOI2016/TJOI2016] 排序 解题报告(二分答案/线段树分裂合并+set)
  8. python的一些配置
  9. Android APP 调试过程中遇到的问题。
  10. ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn&#39;t want to study(树状数组)