视图家族 view:视图 generics:工具视图 mixins:视图工具集 viewsets:视图集 学习曲线: APIView => GenericAPIView => mixins的五大工具类 => generics中的工具视图 => viewsets中的视图集 一.GenericAPIView基类 # GenericAPIView是继承APIView的,完全兼容APIView # 重点:GenericAPIView在APIView基础上完成了哪些事? 1)get_quer…
视图家族 视图家族在rest_framework源码位置和学习曲线为: rest_framework.views: 基本视图(APIView) rest_framework.generics: 工具视图(GenericAPIView) rest_framework.mixins: 视图工具集(Create/Destroy/List/Retrieve/Update) rest_framework.viewsets: 视图集 APIView 前几章代码都是基于APIView写的, 这里就不赘述了,…
视图家族之mixins视图工具类与generics工具视图类 一.mixins视图工具类 作用: 提供了几种后端视图(对数据资源进行曾删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量. 这五个扩展类需要搭配GenericAPIView父类,因为五个扩展类的实现需要调用GenericAPIView提供的序列化器与数据库查询的方法. """ 六大视图工具类: RetrieveModelMixin,\ 单查 Lis…
1. 两个基类 1)APIView Django REST_framework 中所有视图的基类是APIView   父类是View 支持定义的属性: authentication_classes 列表或元祖,身份认证类 permissoin_classes 列表或元祖,权限检查类 throttle_classes 列表或元祖,流量控制类 在APIView中仍以常规的类视图定义方法来实现get() .post() 或者其他请求方式的方法. 举例: from rest_framework.view…
rest_framework.mixins 请求业务 的 5 种实现 ​ mixin(混合类):不能单独使用,和其它类搭配起来使用(利用了Python支持多继承) rest_framework.mixins imput 业务的 主要逻辑都在这里 CreateModelMixin 创建对象 post 请求 ListModelMixin 查询所有的对象 get请求 RetrieveModelMixin 查询一个对象 get请求 UpdateModelMixin 更改一个对象 put 请求 Destr…
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查询数据 # 反序列化post save() => create()(数据保存到数据库中) #添加 ser_obj = ModelSerializer(data=model_data) #传递data参数,保存数据 #反序列化put save() => update() #修改(需要传入instan…
前端于对数据操作的请求基本上就分为四类:增删改查,即增加.删除.修改.查询. 而DRF把前端请求分为两个大类:带ID参数请求和不带ID参数请求. 不带ID参数请求包括:增加.分布多条查询 带ID参数请求包括:删除.修改.单条查询 DRF针对这五类需求,分别提供了五个扩展类来支持,叫Mixin扩展类. GenericAPIView继承自APIView,主要增加了操作序列化器和数据查询的方法.作用是为Mixin扩展类执行提供方法支持.通常在使用时,可搭配一个或多个Mixin扩展类. 找到并打开App…
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views, generics, mixins, viewsets 最基础:django自带的views类 drf框架中最基础的视图类:views.APIView drf框架中工具视图:generics GenericAPIView:该视图类中的基类 mixins视图工具集: RetrieveModelMix…
基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, request, *args, **kwargs): # 查看所有视图 class ListModelMixin(object) def list(self, request, *args, **kwargs): # 查看单个视图 class RetrieveModelMixin(object)…
前后端分离的项目 >: pip3 install djangorestframework   一.视图类传递参数给序列化类 视图层:views.py 需求: (1)在视图类中实列化对象是,可以设置context的传递内容 (2)也就是在哪里可以得到或者这个context的局部钩子,全局钩子,create. update 方法中, 都可以用 self.,context 访问视图 类传递过来的内容 如:我们在视图类中可以通过request得到登录用户reqest.user (2)再续列化中,要完成数…
1.DRF框架给我们封装好了好多层模块的 来实现简便接口的编写 # from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, ListModelMixin, \ # DestroyModelMixin # from rest_framework.generics import GenericAPIView # #这里是加载drf框架的mixins 模块的功能 #ListMod…
一.视图家族的分类 1.导入分类 from rest_framewok import views, generics, mixins, viewsets views:视图类 ​ 两大视图类:APIView.GenericAPIView from rest_framework.views import APIView from rest_framework.generics import GenericAPIView mixins:视图工具类 ​ 六大视图工具类: RetrieveModelMix…
目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 系列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py…
视图类传递参数给序列化类 (1).在视图类中实例化 序列化对象时,可以设置context内容. (2).在序列化类中的局部钩子.全局钩子.create.update方法中,都可以用self.context访问视图类传毒过来的内容. # 需求: # 1) 在视图类中,可以通过request得到登陆用户request.user # 2) 在序列化类中,要完成数据库数据的校验与入库操作,可能会需要知道当前的登陆用户,但序列化类无法访问request # 3) 在视图类中实例化序列化对象时,将reque…
目录 视图家族 一.views视图类 1.APIView类 2.GenericAPIView类(generics中) 二.mixins类:视图辅助工具 1.RetrieveModelMixin 2.ListModelMixin 3.CreateModelMixin 4.UpdateModelMixin 5.DestroyModelMixin 三.generics类:包含辅助工具的通用视图类 四.viewsets视图集 1.作用 2.如何使用 3.ModelViewSet的不合理之处及解决方法 路…
视图家族之视图工具集viewsets 一.视图集ViewSet 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destory() 删除数据 ViewSet视图集类不再实现get().post()等方法,而是通过重写as_view函数进行映射实现动作 action 如 list() .create() 等. 视图集只在使用as_view()方法的时候,才会将…
目录 视图家族 & 路由组件 视图集与路由组件 基于 GenericAPIView 的十大接口 基于 generics 包下工具视图类的六大基础接口 视图集 路由组件:必须配合视图集使用 自定义路由组件(了解) 上传图片接口 权限 做项目是否要分表管理前后台用户 权限六表 三大认证规则 视图家族 & 路由组件 视图基类:APIView.GenericAPIView 视图工具类:mixins包下的五个类(六个方法) 工具视图类:generics包下的所有GenericAPIView的子类 视…
DRF的视图 APIView Django中写CBV的时候继承的是View,rest_framework继承的是APIView, urlpatterns = [ url(r'^book$', BookView.as_view()), # url(r'^book/(?P<id>\d+)', BookEditView.as_view()), url(r'^book$', BookModelView.as_view({"get": "list", "…
一.mixins类编写视图 1.配置url urlpatterns = [ ... re_path(r'^authors/$', views.AuthorView.as_view(), name="author"), re_path(r'^authors/(?P<pk>\d+)/$', views.AuthorDetailView.as_view(), name="detail_author") ] 2.编写Author的序列化类 /app01/seri…
先看一张图,对DRF的各个APIView,Mixin,Viewset等有个基本印象: 具体使用方法: 1.APIView: DRF 的API视图 有两种实现方式: 一种是基于函数的:@api_view 一种是基于类的:APIView,APIView是Restframework提供的所有视图的基类,继承自Django的View父类 1)@api_view 使用@api_view装饰器,使得我们此处的Request不在是Django标准的HttpRequest,而是restframework的Req…
1. 视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 1.1. 请求与响应 1.1.1 Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象. REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Ty…
DRF 的视图,路由和渲染器 1 视图 简单的增删改查 : ModelViewSet; 复杂的操作使用APIView 和 GenericViewSet APIView(View) class HomeView(APIView): def get(self,request,*args,**kwargs): user_list = UserInfo.objects.all() ser = IndexSerializer(user_list,many=True) return Response(ser…
views.py from django.shortcuts import render # Create your views here. from rest_framework.generics import GenericAPIView from rest_framework.response import Response from rest_framework.views import APIView from bookset.models import BookInfo from .…
一.序列化传参 在视图类中实例化序列对象时,还有一个参数为context,这个参数是存放字典,将所有从前端传来的数据传输到序列化中,比如需要在序列化中校验当前用户. 传入的request参数也是一个对象. 视图层: class Book(APIView): def post(self, request, *args, **kwargs): book_ser = serializers.BookModelSerializer(data=request_data,context={'request'…
Vue框架目录 (一)Vue框架(一)——Vue导读.Vue实例(挂载点el.数据data.过滤器filters).Vue指令(文本指令v-text.事件指令v-on.属性指令v-bind.表单指令v-model) (二)Vue框架(二)——Vue指令(v-once指令.v-cloak指令.条件指令.v-pre指令.循环指令).todolist案例.Vue实例(计算.监听).组件.组件数据交互 (三)Vue框架(三)——Vue项目搭建和项目目录介绍.组件.路由 (四)Vue框架(四)——路由跳转…
目录 DRF的视图组件 两大视图类 六大视图工具类 九大工具视图类 两大视图集基类 DRF的视图组件 DRF的视图组件大概分以下几类 两大视图类 APIView.GenericAPIView from rest_framework.views import APIView from rest_framework.generics import GenericAPIView ''' APIView继承Django的View 1) View:将请求方式与视图类的同名方法建立映射,完成请求响应 2)…
复习 """ 1.整体修改与局部修改 # 序列化 ser_obj = ModelSerializer(model_obj) # 反序列化,save() => create() ser_obj = ModelSerializer(data=model_data) # save() => update() ser_obj = ModelSerializer(instance=model_obj,data=model_data) # partial=True =>…
DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢~~~ urlpatterns = [     url(r'^book$', BookView.as_view()),     url(r'^book/(?P<id>\d+)$', BookEditView.as_view()), ] 我们可以看到,不管是View还是APIView最开始调用的都是as_view()方法~~那我们走进源码看看…
APIView和View的区别 -- APIView继承了View -- APIView 重写了as_view以及 dispatch方法 -- 在dispatch里重新封装了request  -- request = Request()  -- 旧的request变成了_request -- get请求数据  -- request.query_params -- post请求的数据  -- request.data Django Rest Framework 视图和路由   DRF的视图 API…
drf框架接口文档 REST framework可以自动帮助我们生成接口文档. 接口文档以网页的方式呈现. 自动接口文档能生成的是继承自APIView及其子类的视图. 一.安装依赖 pip install coreapi 二.设置接口文档访问路径 在总路由中添加接口文档路径. 文档路由对应的视图配置为rest_framework.documentation.include_docs_urls, 参数title为接口文档网站的标题. from rest_framework.documentatio…