一.一个请求来到Django 的生命周期   FBV 不讨论 CBV: 请求被代理转发到uwsgi: 开始Django的流程: 首先经过中间件process_request (session等) 然后:url --- > Xxx.as_view() 根据url映射到对应业务逻辑类 --->process_view (csrf等)   业务逻辑类中: as_view() -- > view ---> dispatch() 通过映射调用请求的方法在业务逻辑中的对应处理函数 (如post…
今日内容概要 序列化与反序列化 def介绍和快速使用 cbv源码流程分析 drf之APIView和Request对象分析 内容详细 1.序列化和反序列化 # api接口开发 最核心最常见的一个过程就是序列化 所谓序列化就是把数据转换格式,序列化可以分两个阶段 # 序列化:把我们语言识别的数据转换成指定的格式提供给别人: 字典,列表,对象------>json/xml/prop,massagepack--->提供给别人(前端或其他服务) # 反序列化:把别人提供的数据转换/还原成我们需要的格式…
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分发--->视图(CBV或FBV)---->取模板,取数据,用数据渲染模板--->返回模板的字符串---->前端页面得到数据展现页面给用户 二.WEB开发模式: 在开发Web应用中,有两种应用模式: 前后端不分离前后端分离1 前后端不分离在前后端不分离的应用模式中,前端页面看到的效果都是…
cbv源码拓展 扩展,如果我在Book视图类中重写dispatch方法 -可以实现,在get,post方法执行之前或者之后执行代码,完成类似装饰器的效果 def dispatch(self, request, *args, **kwargs): # 请求执行前代码 response=super().…
一.cbv源码分析 二.resful规范 三.django中写resful的借口 四.drf写resful的借口 五.APIVIew源码分析 六.drf之序列化 一.cbv源码分析 -CBV和FBV 1.在views中写一个类,继承views里面写get方法,post方法 2.在路由中配置:url(r'^test/',views.Test.as_view()),实际上上第二个参数位置,放的还是一个函数内存地址 3.当请求来了,就会执行第二个参数(request,参数),本质上执行views()…
目录 复习 drf框架 全称:django-rest framework 知识点 接口 restful接口规范 基于restful规范的原生Django接口 主路由:url.py api组件的子路由:api/url.py 模型层:model.py 后台层:admin.py 数据库迁移 视图层:views.py Postman接口工具 代码 DRF框架 安装 drf框架规矩的封装风格 drf请求生命周期 请求模块:request对象 源码入口 源码分析 重点总结 渲染模块:浏览器和Postman请…
{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…
目录 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…
1.http请求协议 代码很枯燥,结果和奇妙. 1.cbv django.vuews import View classs LoginView(View): def get(self,requset): pass 2.classmethod $ classonlymethod 3.getattr hasattr setattr 4.self定位 - 始终代表调用者本身 5.http请求协议:就是约定成俗的规范,解析数据的规范 6.form enctype 解析参数的格式 7. javascrip…