1.restful 规范与APIView
drf 框架初识
restful 规范
定义:它是一种规范,面向资源架构
10条规范:
'''
主要部分: 路径都用名词表示,请求方式不同,表示不同操作
1.路径,视网络上的任何东西都是资源,均使用名词表示(可以为复数)、
--127.0.0.1/books/
2.method,通过请求方式来表示进行的操作
--127.0.0.1/books/ get请求:表示获取所有图书 | --127.0.0.1/books/1 get请求:表示获取id为1的图书
--127.0.0.1/books/ post请求:表示新增一本书
--127.0.0.1/books/ delete请求:表示删除一本书
--127.0.0.1/books/ put/patch请求:表示修改一本书
'''
'''
1.API与用户的通信协议,总是使用HTTPs协议 ----> 密文
2.域名
https://api.example.com :尽量将API部署在专用域名(会存在跨域问题)
https://example.org/api/:API很简单(推荐)
3.版本
-https://api.example.com/v1/
-把版本号放在请求头中 ----> 功能更新需要另起版本
4.过滤,通过在url上传参的形式传递搜索条件
5.状态码
1 开头:服务器正在处理
2 开头:服务器处理成功
3 开头:重定向
4 开头:客户端错误
5 开头:服务器错误
-注意:在返回的数据中携带状态码
6.错误处理,应返回错误信息,error当做key
7.返回结果针对不同操作,返回数据格式要求
8.返回结果中提供链接
'''
CBV (View) 的源码执行流程
'''
--路由:url(r'^books/',views.Books.as_view()),
--当程序启动,第二个位置已经放入一个函数的内存地址(as_view内部view这个函数)
--当来了 get 请求,拿到第二个位置参数内存地址加括号执行(request,*args,**kwargs),其实就是 view(request,*args,**kwargs)
--本质就是执行了dispatch(request,*args,**kwargs)方法
--dispatch方法内部通过请求方式(get,post),反射出要执行的方法,去执行,然后返回
'''
drf 框架的安装和简单使用
'''
drf: djangorestframework, 在原来 django 框架的基础上多做了一些事
安装:pip3 install djangorestframework
本质上是app,需要在 settings中配置 INSTALLED_APPS=['rest_framework',]
只要用drf,以后写的都是cbv
drf提供:
序列化组件
视图组件
解析器
认证组件
权限组件
频率组件
分页器
响应器
url控制器
版本控制
'''
APIView的源码执行流程
'''
-get请求,执行 View 的 as_view 方法内部的 view 闭包函数,view闭包函数中执行了 dispacth 方法,
-现在再执行dispatch,就已经不是 View 的 dispatch,而是 APIView 的 dispatch 方法
'''
'''
补充:
装饰器其实就是一个函数
urlencode编码
formdata编码
json编码:request.POST是没有值,只能从body中取出,直接处理
-urlencode和formdata编码,request.POST
'''
编码
json编码:request.POST是没有值,只能从body中取出,直接处理
-urlencode和formdata编码,request.POST
‘’’