首先get请求的数据都在request.GET中,request.body中没有,因为只有post请求有请求体,request.body中的数据是请求体的数据 首先,我们还是用cbv的方式来讲解 我们的实例是这样的 from django import views class Rest_view(views.View): def get(self,request): print("get_get",request.GET) print("get_body",requ…
今日内容概要 序列化与反序列化 def介绍和快速使用 cbv源码流程分析 drf之APIView和Request对象分析 内容详细 1.序列化和反序列化 # api接口开发 最核心最常见的一个过程就是序列化 所谓序列化就是把数据转换格式,序列化可以分两个阶段 # 序列化:把我们语言识别的数据转换成指定的格式提供给别人: 字典,列表,对象------>json/xml/prop,massagepack--->提供给别人(前端或其他服务) # 反序列化:把别人提供的数据转换/还原成我们需要的格式…
Django 之 djangorestframework的APIView分析 APIView 类中的as_view() 方法 首先 我们从视图函数入手,在urls.py 中的 URLconfig中添加一条路由 url(r'^books/',views.Book.as_view()), 此时,我们的BookView已经不是继承自django.views中View了,而是restframework.views中的APIView from django.shortcuts import render,…
CBV 执行流程 路由配置:url(r'^test/',views.Test.as_view()),  --> 根据路由匹配,一旦成功,会执行后面函数(request) --> 本质就是执行了as_view内部的view函数 --> 内部又调用了self.dispatch --> 根据请方式,执行不同的方法(必然get请求,就会执行视图类的get方法) 自己分装一个类 重写dispatch方法,在执行父类的dispatch之前,写一些逻辑,请求来了,就会执行这些逻辑 from dj…
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐. 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 二 中间件介绍…
{drf,resful,apiview,序列化组件,视图组件,认证组件,权限组件,频率组件,解析器,分页器,响应器,URL控制器,版本控制} 一.CBV源码分析准备工作: 新建一个Django项目 写一个基于类的视图 继承,写get,post方法 from django.shortcuts import render, HttpResponse from django.views import View from django.http import JsonResponse # Create…
一.CBV源码分析 1.url层的使用CBV from app01 import views url(r'book/',views.Book.as_view) 2.as_view方法 as_view是一个类方法,实际上是一个闭包函数(内层函数包含对外层作用域的使用) 请求来了以后,调用as_view方法,调用函数中的view方法,view方法是调用了dispatch方法 @classonlymethod def as_view(cls, **initkwargs): def view(reque…
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分发--->视图(CBV或FBV)---->取模板,取数据,用数据渲染模板--->返回模板的字符串---->前端页面得到数据展现页面给用户 二.WEB开发模式: 在开发Web应用中,有两种应用模式: 前后端不分离前后端分离1 前后端不分离在前后端不分离的应用模式中,前端页面看到的效果都是…
目录 APIview的请求生命周期源码分析 请求模块 解析模块 全局配置解析器 局部配置解析器 响应模块 异常处理模块 重写异常处理函数 渲染模块 APIview的请求生命周期源码分析 Django项目启动=>加载settings文件=>加载models.views.urls文件,执行urls文件,调用视图类的as_view()方法. APIview的as_view()方法继承父类的as_view()方法,并增加了局部禁用csrf中间件的功能 def as_view(cls, **initkw…
目录 CBV源码分析.restful规范.restframework框架 一.CBV源码分析 1.url层的使用CBV 2.as_view方法 3.view方法 4.dispatch方法(可以在视图层的CBV中重写) 5.views层的CBV 6.CBV执行过程总结 二.restful规范 1.什么是restful 2.10条规范 (1)https协议 (2)域名 (3)版本 (4)路径 (5)method (6)过滤 (7)状态码 (8)错误处理 (9)返回结果 (10)返回结果中提供链接(H…