视图函数在处理请求后,必须返回一个 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 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500
3. JsonResponse
可以使用 JsonResponse
来快速构造json类型的响应对象,它可以帮助我们把数据转换为json字符串,并把响应头的 Content_type
为 application/json
from django.http import JsonResponse
def 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