rest_framework 视图
2024-09-02 00:18:19
视图:
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
最新文章
- 为支持ASP.NET5跨平台,Jexus再添新举措
- 使用Spark分析拉勾网招聘信息(二): 获取数据
- linux下使用正确的用户名密码,本地无法连接mysql
- java语句类型
- 谈谈作为一个菜B的培训感受
- 【转】Maven实战(一)---Maven Build--缺少Jar包
- ICMP报文分析
- ZOJ 1171 Sorting the Photos
- 对比AutoResetEvent和ManualResetEvent
- paramiko 模块安装
- html5 canvas元素使用(一)
- CSDN文章抓取
- 总结一下现在关于Design Support Library的几个博客
- Android 手势锁的实现 让自己的应用更加安全吧
- 【Teradata】使用arcmain进行不落地数据迁移(管道)
- Android Studio 设置编辑器(Editor)的字体、字体大小
- 根据xlsx模板生成excel数据文件发送邮件代码
- CentOS 下安装 Node.js 8.11.3 LTS Version
- mysql性能优化(一)
- 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参
热门文章
- leetCode(24):Binary Search Tree Iterator
- [CSS3] Create Dynamic Styles with CSS Variables
- [ReactVR] Render Custom 3D Objects Using the Model Component in React VR
- iOS开发UI调试神器----Reveal
- HDU2188 悼念512汶川大地震遇难同胞——选拔志愿者
- ES shard unassigned的解决方法汇总
- [HEOI2016/TJOI2016] 排序 解题报告(二分答案/线段树分裂合并+set)
- python的一些配置
- Android APP 调试过程中遇到的问题。
- ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn&#39;t want to study(树状数组)