视图函数在处理请求后,必须返回一个 HttpResponse
对象,或者 HttpResponse
对象的子对象。
1. HttpResponse
可以通过 django.http.HttpResponse 来构造响应对象,并设置 响应头,响应体,响应体类型,状态码等。
HttpResponse(content=响应体, content_type=响应体类型, status=状态码)
响应体,状态码等也可以单独设置
response = HttpResponse()response.content = "响应体"response.status_code = 200
响应头可以把 HttpResponse
对象当做字典来进行设置。
response = HttpResponse()response[响应头key] = 响应头值
示例:
def response_view(request): response = HttpResponse() response.content = "响应体" response.status_code = 200 response['name'] = 'xuanli' return response
响应结果
Body:响应体Headers:name →xuanli
def response_view2(request): return HttpResponse(content="响应体", status=200)
响应结果
Body:响应体
2. HttpResponse的子类
Django提供了一系列HttpResponse的子类,可以快速设置状态码
HttpResponseRedirect 301HttpResponsePermanentRedirect 302HttpResponseNotModified 304HttpResponseBadRequest 400HttpResponseNotFound 404HttpResponseForbidden 403HttpResponseNotAllowed 405HttpResponseGone 410HttpResponseServerError 500
3. JsonResponse
可以使用 JsonResponse
来快速构造json类型的响应对象,它可以帮助我们把数据转换为json字符串,并把响应头的 Content_type
为 application/json
from django.http import JsonResponsedef resopnse_json(request): return JsonResponse({"name": "xuanli", "age": "18"})
响应结果
{ "age": "18", "name": "xuanli"}
4. 重定向
使用 redirect
重定向
def redirect_view(request): return redirect('/demo/index')
重定向到 /demo/index