drf(请求和响应)】的更多相关文章

目录 一.请求 1 定义 2 常用属性 1).data 2).query_params 二.响应 1 Response 2 构造方法 3 状态码 1)信息告知 - 1xx 2)成功 - 2xx 3)重定向 - 3xx 4)客户端错误 - 4xx 5)服务器错误 - 5xx 三.视图 1 基类视图 APIView 2 通用视图类 GenericAPIView 3 扩展类Mixin 4 GenericAPIView的视图子类 5 视图集 1) ViewSet 2)GenericViewSet 3)M…
DRF视图 drf的代码简写除了在数据序列化体现以外,在视图中也是可以的.它在django原有的django.views.View类基础上,drf内部封装了许多子类以便我们使用. Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 调用请求类和响应类[这两个类也是由drf帮我们再次扩展了一些功能类. 请求与响应 先创建一个子应用req python manage.py startapp httpdemo Reques…
请求与响应(3星) 请求:Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象. REST framework 提供了Parser解析…
一 内容协商 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个视图子类出来提供给我们使用. Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 调用请求类和响应类[这两个类也是由drf帮我们再次扩展了一些功能类.] 在了解drf提供的请求与响应类之前,我们需要了解一个概念:内容协商.即:drf在django原有的基础…
DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件.解析组件.响应组件 4.序列化组件(灵魂) 5.三大认证(重中之重):认证.权限(权限六表).频率 6.其他组件:过滤.筛选.排序.分页.路由 接口 接口:联系两个物质的媒介,完成信息交互 web程序中:联系前台页面与后台数据库的媒介 web接口组成: url:长得像返回数据的url链接 请求参数…
admin后台注册model  一.原生djangoCBV请求生命周期源码分析 原生view的源码路径(django/views/generic/base.py) 1.从urls.py中as_view()入手,进入as_view()的源码,前台传递的数据都进入as_view()函数 2.进入as_view()中view()函数接收前台传递过来的参数处理,dispath()把返回值分发下去,进入dispatch源码 3.dispatch源码分析,最后的返回值handler是对象.请求方式 disp…
前言   一般我们写完序列化以后,我们就会开始写视图了,drf中我们一般使用CBV的方式,也就是类视图的方式,最基础的我们会使用from rest_framework.views import APIView,APIView继承自View,关于视图的详解,我们后续再细讲.本章介绍drf的请求生命周期 前置准备工作 我们先写一个视图类TestView,代码如下: from rest_framework.views import APIView from rest_framework.respons…
前言 APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块 请求模块:request对象 源码入口 APIView类中dispatch方法中的:request=self.iniialize_request(*args, **kwargs),源码如下: def initialize_request(self, request, *args, **kwargs): """ Returns the ini…
1.反序列化类校验部分源码分析(了解) 1.当我们在视图类中生成一个序列化类对象ser,并且用ser.is_valid()是就会执行校验,校验通过返回True,不通过返回False.首先对象ser和序列化类中都没有方法is_valid(). 然后我们去其父类Serializer中找,也没找到,再去其父类BaseSerializer中找,找到了方法is_valid(): 2.关键语句在于:self._validated_data = self.run_validation(self.initial…
As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, Seven")…