" name="sm-site-verification"/>
侧边栏壁纸
博主头像
PySuper博主等级

千里之行,始于足下

  • 累计撰写 203 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录
Web

Django 中的 HTTPResponse | JsonResponse | Response

PySuper
2020-04-09 / 0 评论 / 0 点赞 / 10 阅读 / 2881 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

后台返回的数据都需要有固定的格式,包含状态码以及信息,状态码为公司自定义

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
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区