django返回响应对象

Django的视图必须要返回一个HttpResponse对象(或者其子类对象),不能像flask一样直接返回字符串。

Django:

return HttpResponse("Hello")

Flask:

return "Hello"

1.HttpResponse:

(1)构造响应对象

HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型:

  • text/html html
  • text/plain 普通文本
  • application/json json

  • ...

    content_type 不指定默认值为:text/html; charset=utf-8

(2)响应头设置:为HttpResponse对象设置响应头

response = HttpResponse('响应内容')

response['id'] = 'abcd'    # 自定义响应头

2.JsonResponse对象

JsonResponse是HttpResponse的子类。

JsonResponse有两个功能:

(1)将数据转换为json字符串,再返回给客户端

(2)自动设置响应头Content-Type为application/json

示例:

def index(request):
a = {"id":123,"category":999}
return JsonResponse(a)

同样的,JsonResponse也可以接受非字典数据,只需要指定safe=False即可。

def index(request):
a = "" # 列表也可以
return JsonResponse(a,safe=False)

除了JsonResponse,Django还提供了很多子类,可以快递设置状态码。这里就不一一说了。

  • HttpResponseRedirect 302
  • HttpResponseNotModified 304
  • HttpResponseBadRequest 400
  • HttpResponseNotFound 404
  • HttpResponseForbidden 403
  • HttpResponseNotAllowed 405
  • HttpResponseServerError 500
上一篇:Django视图函数之request请求与response响应对象


下一篇:CentOS+Apache+mod_wsgi+Python+Django