DRF中的APIView、GenericAPIView、ViewSet】的更多相关文章

1.APIView(rest_framework.views import APIView),是REST framework提供的所有视图的基类,继承自Django的View. 传入到视图方法中的是REST framework的Request对象,返回REST framework的Response对象,视图会为响应数据设置(render)符合前端要求的格式. 在进行dispatch()分发前,会对请求进行身份认证.权限检查.流量控制. 在APIView中仍以常规的类视图定义方法来实现get()…
首先写一个简单的drf接口 from rest_framework.views import APIView from rest_framework.response import Response # 基于drf写接口,cbv class DrfTest(APIView): def get(self, request,*args,**kwargs): print(type(request._request)) print(type(request)) print(request.POST) p…
drf中的各种view,viewset Django REST framework里有各种各样的view,让我有点蒙,得好好捋一捋这关系. 视图的作用 Django用"视图"这个概念封装处理用户请求并返回响应的逻辑. 视图是一个可调用对象,它不仅可以是基于函数,也可以是基于类的. 相比较与函数,基于类的视图有一些区别和优势: 组织与特定HTTP方法相关的代码(GET,POST等) 可以通过单独的方法而不是条件分支来解决. 面向对象的技术例如Mixin(多继承.混用)可以将代码分解成可重…
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查询数据 # 反序列化post save() => create()(数据保存到数据库中) #添加 ser_obj = ModelSerializer(data=model_data) #传递data参数,保存数据 #反序列化put save() => update() #修改(需要传入instan…
视图家族 view:视图 generics:工具视图 mixins:视图工具集 viewsets:视图集 学习曲线: APIView => GenericAPIView => mixins的五大工具类 => generics中的工具视图 => viewsets中的视图集 一.GenericAPIView基类 # GenericAPIView是继承APIView的,完全兼容APIView # 重点:GenericAPIView在APIView基础上完成了哪些事? 1)get_quer…
1.说明:DRF框架中的视图集: 在drf开发接口中,使用GenericAPIView和视图扩展类结合起来完成接口功能是一件很常见的事情,所以,drf的作者帮我们提前把  GenericAPIView和视图扩展类结合子类也声明了出来视图子类中还帮我们定义对应接口的视图方法代码,所以我们无需在视图中重复编写对用的视图方法了.案例代码: view.py from rest_framework.generics import ListAPIView,CreateAPIView # ListAPIVie…
视图家族 视图家族在rest_framework源码位置和学习曲线为: rest_framework.views: 基本视图(APIView) rest_framework.generics: 工具视图(GenericAPIView) rest_framework.mixins: 视图工具集(Create/Destroy/List/Retrieve/Update) rest_framework.viewsets: 视图集 APIView 前几章代码都是基于APIView写的, 这里就不赘述了,…
Rest Framework 视图和路由 因为涉及到视图层面了,而且下面的例子会反复用到request.data,所以我决定带大家稍微看下源码,感兴趣的可以自己深入了解 无论是View还是APIView最开始都是调用as_view() 大致过了下APIView给我们封装的数据 总结一下 旧的request封装到新request属性_request里 继承APIView,重新封装的request.query_params相当于旧的request.GET request.data相当于旧的reque…
DRF中的序列化器详细应用   视图的功能:说白了就是接收前端请求,进行数据处理 (这里的处理包括:如果前端是GET请求,则构造查询集,将结果返回,这个过程为序列化:如果前端是POST请求,假如要对数据库进行改动,则需要拿到前端发来的数据,进行校验,将数据写入数据库,这个过程称为反序列化) 最原始的视图可以实现这样的逻辑处理,但是针对不同的请求,需要在类视图中定义多个方法实现各自的处理,这样是可以解决问题,但是存在一个缺陷,那就是每个函数中一般的逻辑都差不多:读请求,从数据库拿数据,写东西到数据…
DRF 中 解决跨域 与 预检 1 跨域 浏览器的同源策略: 对ajax请求进行阻拦 ps: 对href src属性 不限制 只有浏览器会阻止,requests模块不会存在跨域 (1)解决方案1 JSONP--只有get ajax -- xhr = new XMLHttpResponse(): xhr.open.. xhr.send(..) 点击按钮 动态添加一个 <script src='...../users/'></script> <script> functio…