django-drf
1、drf简介与安装
简介:
djangorestframework:django的一个app,只能在django上面使用
安装:
方式1:
pip3 install djangorestframework
方式2:
通过pyharm安装,直接搜索:djangorestframework下载即可
注意:
安装之后django、版本会升级到最新版本
在配置文件中注册app
rest_framework
注意事项:
部分pycharm版本根据下载的版本不同,需要在配置文件中更改响应的配置
根据报错信息更改即可,如:
os.path.join
decode更改为encode
导入与继承
from rest_framework.view import APIView # 类似继承类View
from rest_framework.response import Response # 类似HttpResponse
class Index(APIView):
def get(self, request, *args, **kwargs):
# 跟JsonResponse很像,比JsonResponse强大很多,比如会根据访问的客户端不同,返回的数据也不一样
return Response(字典)
2、restful API规范
1、全称:representational state transfer:表征状态转义
REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。
2、web API接口的设计风格,是用于前后端分离的应用模式中
3、与语言,平台无关,任何框架都可以写出符合restful规范的api接口
4、规范:
1、数据安全的保障:url链接一般都是采用https协议进行传输
2、接口的特征表现:API接口特征标识
https://api.baidu.com
https://www.baidu.com/api
3、多版本共存:url中标识接口版本
https://api.baidu.com/v2
4、数据即是资源:均使用名词(可复数)
接口一般都是完成前后端数据的交换,交换的数据我们称之为资源,一般使用资源的复数形式,不要使用动词
5、资源操作由请求方式决定:get获取,post,增加,put全局更改,patch局部修改,delete删除
6、过滤:通过在url上传的形式传递搜索的条件,get请求方式
https://api.baidu.com/v1/zooos?limit=10
通过该接口获取筛选的条件
7、响应状态码:对该接口的状态码
返回的数据中心携带状态码
{'code':100,'msg':'操作成功'}
8、错误处理,应返回错误信息,error中的key
{'code':101,'msg':'因为xx原因操作失败'}
9、返回结果,根据不同的操作应符合如下规范
GET:返回所有资源,应是列表套字典形式(数组套字典,每一个字典就是每一条记录)
GET/1:返回单个资源对象(单个字段)
POST:返回新添加的数据对象
PUT:返回修改之后的数据对象
PATCH:返回修改之后的数据对象
DELETE:返回一个空文档
10、返回的数据中携带链接地址
{
'code':100,
'msg':'操作成功',
'img':https://127.0.0.1/api/v1/img
}
3、Request类
request._request :原生的request
request.data :post请求提交的数据(urlencoded, json, formdata)
request.user :不是原生的user了
request.reqry_params :原生的request.GET,为了遵循restful规范
request.FILES :新的
重写了__getattr__(self,attr):新的request,原来所有的属性和方法,都可以直接拿到
def __gatattr__(self,attr):
return getattr(self, _request, attr)
API接口
可以理解为通过向该接口发送指定的数据,之后会返回该接口提供的数据
典型的api接口:https://api.weibo.com/2/statuses/home_timeline.json