方式一

1.settings设置

  1. INSTALLED_APPS = [
  2. ...
  3. 'rest_framework',
  4. ]

2.views设置

  1. from rest_framework.response import Response
  2.  
  3. class PagesView(APIView):
  4. def get(self,request,*args,**kwargs):
  5. ...
  6. ...
  7. return Response(ser.data)

方式二

1.urls:

  1. re_path(r'^(?P<version>[v1|v2]+)/pages/$',PagesView.as_view({'get':'list'}),),

2.views:

  1. from rest_framework.viewsets import GenericViewSet
  2. get请求执行list方法
  3. class PagesView(GenericViewSet):
  4. queryset = models.UserInfo.objects.all()
  5. serializer_class = pages.PagesSerializer #自己写好的类
  6. pagination_class = MyPageNumberPagination #同上
  7. def list(self,request,*args,**kwargs):
  8. # 获取所有数据
  9. m = self.get_queryset()
  10. #创建分页对象并在数据库中获取分页的数据
  11. pa_info = self.paginate_queryset(m)
  12. #对数据进行序列化
  13. ser = self.get_serializer(instance=pa_info,many=True)
  14. return Response(ser.data)

方式三

1.urls:

  1. re_path(r'^(?P<version>[v1|v2]+)/pages/$',PagesView.as_view({'get':'list','post':'create'}),),
  2. re_path(r'^(?P<version>[v1|v2]+)/pages/(?P<pk>\d+)$', PagesView.as_view({'get': 'retrieve', 'delete': 'destroy','put':'update','patch':'partial_update'}), ),

2.views:

  1. from rest_framework.viewsets import ModelViewSet(继承了6个类,继承越多,代码需要写的越少)
  2. from rest_framework.mixins import ListModelMixin,CreateModelMixin(被上面的类继承)
  3.  
  4. class PagesView(ModelViewSet):
  5. queryset = models.UserInfo.objects.all()
  6. serializer_class = pages.PagesSerializer
  7. pagination_class = MyPageNumberPagination
  8. 总结:
  9. a.增删改查用方式三
  10. b.增删 ListModelMixin/CreateModelMixin,GenericViewSet
  11. c.复杂逻辑 GenericViewSetAPIView

「Django」rest_framework学习系列-视图的更多相关文章

  1. 「Django」rest_framework学习系列-API访问跨域问题

    #以中间件方式解决API数据访问跨域问题1.API下新建文件夹下写PY文件a.引入内置类继承: from django.middleware.common import MiddlewareMixin ...

  2. 「Django」rest_framework学习系列-路由

    自动生成4个url路由:from rest_framework import routersrouter = routers.DefaultRouter()router.register(r'wrx' ...

  3. 「Django」rest_framework学习系列-渲染器

    渲染器:作用于页面,JSONRenderer只是JSON格式,BrowsableAPIRenderer有页面,.AdminRenderer页面以admin形式呈现(需要在请求地址后缀添加?fromat ...

  4. 「Django」rest_framework学习系列-分页

    分页a.分页,看第N页,每页显示N条数据方式一:使用PageNumberPagination创建分页对象,配合settings全局配置 views设置 from rest_framework.pagi ...

  5. 「Django」rest_framework学习系列-解析器

    满足两个要求,request.Post中才有值 1.请求头要求:请求头中的Content-Type为application/x-www-form-urlencoded 2.数据格式要求 name=x& ...

  6. 「Django」rest_framework学习系列-序列化

    序列化方式一 :在业务类里序列化数据库数据 class RolesView(APIView): def get(self,request,*args,**kwargs): roles = models ...

  7. 「Django」rest_framework学习系列-版本认证

    1.自己写: class UserView(APIView): versioning_class = ParamVersion def get(self,request,*args,**kwargs) ...

  8. 「Django」rest_framework学习系列-权限认证

    权限认证:1.项目下utils文件写permissions.py文件 from rest_framework.permissions import BasePermission class SVIPP ...

  9. 「Django」rest_framework学习系列-节流控制

    1.节流自定义类: import time from api import models VISIT_RECORD = {} class VisitThrottle(BaseThrottle): #设 ...

随机推荐

  1. ecshop以及一些需要注意的

    Deprecated: Assigning the return value of new by reference is deprecated in 定位到出错的那一行: $this->_ol ...

  2. Divide by three, multiply by two(DFS+思维)

    Polycarp likes to play with numbers. He takes some integer number x, writes it down on the board, an ...

  3. 【线段树维护复杂状态】Ryuji doesn't want to study

    https://nanti.jisuanke.com/t/31460 tree[rt].ans = tree[rt << 1].ans + tree[rt << 1 | 1]. ...

  4. 软工实践-Alpha 冲刺 (8/10)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 已经解决登录注册等基本功能的界面. 完成非功能的主界面制作 ...

  5. Spring的事务到底该给Dao配置还是给Service配置

    Spring的事务到底该给Dao配置还是给Service配置 Spring事务为业务逻辑进行事务管理,保证业务逻辑上数据的原子性. 事务得根据项目性质来细分:事务可以设置到三个层面(dao层.serv ...

  6. struts2 不返回result的做法

    有时候 比如提交一个弹框的表单 提交成功后我们只是让表单关闭并不进行页面跳转,那么action 里面就returne null, 然后result 也不用配置了 版权声明:本文为博主原创文章,未经博主 ...

  7. lintcode-512-解码方法

    512-解码方法 有一个消息包含A-Z通过以下规则编码 'A' -> 1 'B' -> 2 ... 'Z' -> 26 现在给你一个加密过后的消息,问有几种解码的方式 样例 给你的消 ...

  8. lintcode-464-整数排序 II

    464-整数排序 II 给一组整数,按照升序排序.使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法. 样例 给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, ...

  9. php对二维数组排序

    function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ){ if(is_array($arr ...

  10. windows(32位 64位)下python安装mysqldb模块

    windows(32位 64位)下python安装mysqldb模块 www.111cn.net 编辑:mengchu9 来源:转载 本文章来给各位使用在此windows系统中的python来安装一个 ...