后台返回的数据都需要有固定的格式,包含状态码以及信息,状态码为公司自定义
HTTPResponse
HTTPResponse(content=响应体, content_type=响应体数据类型, status=状态码)
- httpresponse 是由django创建的
- 需要我们自己前后台进行序列化与反序列化
- 可以修改返回的数据类型,比较
适合返回 图片、视频、音频 等二进制文件
返回数据
res = {"code":None, "msg":None}
后台
# 先定义出返回数据的格式
res = {"code": None, "data": None}
# 添加返回的数据
res["code"] = 10000
res['data'] = "success"
# 返回
return HttpResponse(json.dumps(res))
前端
-- js反序列化:
res = JSON.parse(data);
-- 序列化
JSON.stringify(res)
JsonResponse
- JsonResponse 是
HTTPResponse 的子类
,适用于处理json格式的数据,可以帮助我们将数据转换成json类型 - 但是不能返回模板,设置响应头Content-Type 为application/json
把序列化和反序列化封装了起来,我们直接传入可序列化的字符串,在前台就能收到对应的数据
返回数据
res = {"code":None, "msg":None}
后端
# 先定义出返回数据的格式
res = {"code": None, "data": None}
# 添加返回的数据
res["code"] = 10000
res['data'] = "success"
# 返回
return JsonResponse(res)
前端
- 返回的值就是对应的数据类型,不需要过多操作
Response
Response(data, status=None, template_name=None, headers=None, content-type=None)
- django rest-framework框架中
封装好的响应对象
- data只需传递python的内建数据类型
- 如果是
django的模型类对象
,那么就使用序列化器
将数据(python的字典数据)传递给data
评论区