前言
- 本篇来学习Django中的HttpResponse对象
HttpResponse
- 可以使用django.http.HttpResponse来构造响应对象。
HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)
- content:表示返回的内容。
- status_code:返回的HTTP响应状态码。
- 响应头可以直接将HttpResponse对象当做字典进行响应头键值对的设置
response = HttpResponse()
response[‘name’] = ‘小白’ # 自定义响应头name, 值为小白
# urls.py from book01.views import resp urlpatterns = [ path('rsp/', resp), ] # views.py from django.http import HttpResponse, def resp(request): rsp = HttpResponse('大家好,我是测试小白!') rsp.status_code = 200 # 设置响应状态码 rsp['age'] = 28 # 设置响应头 return rsp
- postman请求 http://127.0.0.1:8000/book01/rsp/
HttpResponse子类
- Django提供了一系列HttpResponse的子类,可以快速设置状态码
- HttpResponseRedirect 301
- HttpResponsePermanentRedirect 302
*HttpResponseNotModified 304- HttpResponseBadRequest 400
- HttpResponseNotFound 404
- HttpResponseForbidden 403
- HttpResponseNotAllowed 405
- HttpResponseGone 410
- HttpResponseServerError 500
def resp(request): rsp = HttpResponse('大家好,我是测试小白!') # rsp.status_code = 200 # 设置响应状态码 rsp.status_code = HttpResponseRedirect.status_code rsp['age'] = 28 # 设置响应头 return rsp
- 返回302 状态码
JsonResponse
- 若要返回json数据,可以使用JsonResponse来构造响应对象,作用:
- 帮助我们将数据转换为json字符串
- 设置响应头Content-Type为application/json
# urls.py urlpatterns = [ path('rsp1/', resp1), ] # views.py def resp1(request): return JsonResponse({'city': '北京', 'name': '小白', 'age': 28})
redirect重定向
# urls.py urlpatterns = [ path('rsp2/', resp2), ] # views.py from django.shortcuts import redirect def resp2(request): # 重定向到我的博客首页 return redirect('https://blog.csdn.net/IT_heima')
- 访问: http://127.0.0.1:8000/book01/rsp2/ 重定向到我的博客首页