一、web开发模式

前后端不分离,需要写模板语法,在render()里面拿到这个html模板,把模板语法里面的值替换成真实的数据,然后用HttpResponse给你返回,然后浏览器渲染。

前后端分离,是直接把一个静态页面给你扔回浏览器,这个动作可以不经过django(也可以用django的HttpResponse仍会浏览器),然后网页瞬间往服务器API接口发请求,服务器返回json格式的数据,然后浏览器拿到数据后通过DOM树,把页面加载出来

二、前言知识点

1、API接口:前端给后端发请求拿数据的接口,规定了前后台信息交互规则的url链接,也就是前后端信息交互的媒介

2、解析json的网站

3、postman是一款模拟发送http请求的工具,用于测试API接口

三、Restful规范(重点)

这两个是重点:4 数据即是资源,均使用名词(可复数),5 资源操作由请求方式决定(method)

四、drf的安装和简单使用

五、

1、cbv源码

as_view(),view 本质是一个闭包函数,返回view()函数。

通过dispatch()方法,通过反射,来执行相应的get或post函数

2、APIView源码分析

第一步跟cbv源码里面的一样,返回一个view()函数,但是这个view屏蔽了csrf校验:csrf_exempt(view)

执行apiview的dispatch,重新封装了一个request对象,以后再用的request对象,就是新的request对象了

接着走了三大认证,接着执行get或post方法,然后包装response并返回

3、补充

__getattr__方法:点拦截方法,对象.属性的时候会执行的方法