方式一

1.settings设置

INSTALLED_APPS = [
...
'rest_framework',
]

2.views设置

from rest_framework.response import Response

class PagesView(APIView):
def get(self,request,*args,**kwargs):
...
...
return Response(ser.data)

方式二

1.urls:

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

2.views:

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

方式三

1.urls:

re_path(r'^(?P<version>[v1|v2]+)/pages/$',PagesView.as_view({'get':'list','post':'create'}),),
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:

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

「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. Scrum立会报告+燃尽图(十一月二十三日总第三十一次):界面修改及新页面添加

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2410 项目地址:https://git.coding.net/zhang ...

  2. 王者荣耀交流协会--第2次Scrum会议

    Scrum master:袁玥 要求1:工作照片 要求2:时间跨度:2017年10月14号  6:02--6:43  共计41min 要求3:地点:一食堂二楼两张桌子旁(靠近卖方便面那边) 要求4:立 ...

  3. Shell脚本初学习

    第一个shell程序运行,教程来自:http://jingyan.baidu.com/article/8cdccae947f83e315413cd05.html 代码如下: #!/bin/sh tou ...

  4. HDU 5273 Dylans loves sequence 暴力递推

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5273 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  5. SELECT - OVER 子句 (Transact-SQL)

    标题:SELECT - OVER 子句 (Transact-SQL) 地址:https://docs.microsoft.com/zh-cn/sql/t-sql/queries/select-over ...

  6. 领悟JavaScript面向对象

    JavaScript 是面向对象的.但是不少人对这一点理解得并不全面. 在 JavaScript 中,对象分为两种.一种可以称为“普通对象”,就是我们所普遍理解的那些:数字.日期.用户自定义的对象(如 ...

  7. Java compiler level does not match the version of the installed Java project facet. map解决方法

    右键项目"Properties",在弹出的"Properties"窗口左侧,单击"Project Facets",打开"Proje ...

  8. Hibernate(九)

    三套查询之SQL查询 Native Sql Query原生的sql查询.要求写sql语句.SQLQuery 是 Query的子类 1.查询所有的学生 //1.查询所有的学生 @Test public ...

  9. mybatis(一)MyBatis Generator

    在gradle中使用MyBatis Generator时,build.gradle配置如下: dependencies { mybatisGenerator group: 'org.mybatis.g ...

  10. 第83天:jQuery中操作form表单

    操作form表单 1. 属性操作 设置属性: // 第一个参数表示:要设置的属性名称 // 第二个参数表示:该属性名称对应的值 $(selector).attr(“title”, “传智播客”); 获 ...