restful是一种代码规范,主要有:
1.域名中都是名词,根据情况可设复数形式,
2.根据menthod种类设定不同功能
get:获取查询数据 返回表
post:增加新数据 返回新对象
delete:删除数据 空
put/patch:表示修改数据 新对象
3.都是https协议进行 API与用户的通信协议,总是使用HTTPs协议
4.将版本号放在请求头中
5 .将API部署在专用域名
-2域名
https://api.example.com :尽量将API部署在专用域名(会存在跨域问题)
https://example.org/api/:API很简单(我推荐)
6.过滤通过在url传参的形式实现过滤条件
7.状态码
1服务器正在请求
2.处理成功
3.重定向
4,客户端错误
5:服务端错误
8:错误信息以error作为key
9;返回数据携带url链接
10针对不同操作返回不同数据格式
CBV执行过程
1,url文件会执行 .as_views()会作为一个函数地址来存放
2.收到请求后对应的函数地址调用,使得View里的dispatch(request,*args,**kwargs)方法函数执行如果请求方式在列表里并 如果在视图函数中定义了该方法就执行方法
4 drf框架按装和简单使用
-在原来django框架的基础上多做了一些事
-安装:pip3 install djangorestframework
-这个东西其实就是一个app
-只要用drf,以后写的都是cbv
-drf提供的:
序列化组件
视图组件
解析器
认证组件
权限组件
频率组件
分页器
响应器
url控制器
版本控制
5 APIView的源码执行流程
-比如get请求来了,执行View的as_view方法内部的view闭包函数,view闭包函数中执行了dispatch方法,
-现在再执行dispatch,就已经不是View的dispatch,是APIView的dispatch方法了
补充
装饰器其实就是一个函数
补充:
urlencode编码
formdata编码
json编码:request.POST是没有值,只能从body中取出,直接处理
-urlencode和formdata编码,request.POST
#如果转列表,一定要写safe=false
# return JsonResponse(ll,safe=False,json_dumps_params={'ensure_ascii':False})