这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题
于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。
微信小程序搜索:Python面试宝典
或可关注原创个人博客:https://lienze.tech
也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习
安装***DRF***框架
pip install djangorestframework -i https://pypi.tuna.tsinghua.edu.cn/simple
配置 settings
INSTALLED_APPS = [
...
'rest_framework',
]
这个框架提供了如下功能,让我们的代码风格更加统一,而且让你的开发工作成本更低,这个框架封装了很多很多复用的功能
序列化器,类视图,也是***DRF***提供的主要功能,也是我们学习的重心,也是 WEB 主要的两件事
在drf框架中,已经封装了一款更为便捷进行接口编写的视图基类APIView
,大多数情况下,都会使用这个基类进行业务视图的代码编写
DRF***将***request.POST、***request.FILES***的数据统一封装到了***data***属性中,其中包含了
解析之后的文件、非文件数据
对***POST***、PUT、**PATCH请求方式解析后的数据
表单类型数据、***JSON***类型数据
from rest_framework.views import APIView
class ExampleView(APIView):
def post(self, request):
data = request.data # json/form 提交的数据
return Response({'received data': request.data})
DRF为了更准确的表示这是从连接里取得数据,从而把***request.GET***的名字更换为了***request.query_params*,其余操作与**request.GET一样,这里只是拼写更换
from rest_framework.views import APIView
class ExampleView(APIView):
def get(self, request):
data = request.query_params # get 的连接传参
return Response({'received data': request.query_params})
目前在***DRF***中,我们所使用最多的就是**Response这个方法,经常使用已经序列化好的数据结合***Response***返回
Response(data=None, status=None, template_name=None, headers=None, exception=False, content_type=None)
'''
data: 需要返回的数据
status: 状态码
headers: 头部信息
content-type: 返回数据 MIME 类型,一般不要多余设置,drf 会自动根据数据进行设置
'''
需要注意的是,在***Response*函数的第一个参数位置上,这个data不能是复杂结构的数据,比如ORM查询到的数据,ORM的数据需要提取出来成为Python的数据类型或者使用序列化方式将其加工才可以使用***Response***尽心返回
200 OK - [GET] # 服务器成功返回用户请求的数据
201 CREATED - [POST/PUT/PATCH] # 用户新建或修改数据成功。
202 Accepted - [*] # 表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE] # 用户删除数据成功。