Django響應詳講
1.響應
視圖在接收請求並處理後,必須返回HttpResponse對象或子對象,HttpRequest對象由Django創建,HttpResponse對象由開發人員創建。
2.簡述HttpResponse
可以使用django.http.HttpResponse來構造響應對象。
HttpResponse(content=’響應體‘, content_type=’響應體數據類型‘, status=狀態碼)
也可通過HttpResponse對象屬性來設置響應體、狀態碼:
- content:表示返回的內容。
- status_code:返回的HTTP響應狀態碼。
response[‘sixstar’] = ‘Python’ 自定義響應頭sixstar, 值爲Python
response = HttpResponse()
response['sixstar'] = 'Python' # 自定義響應頭sixstar, 值爲Python
示例:
from django.http import HttpResponse
def demo_view(request):
return HttpResponse('sixstar python', status=400)
#或者
response = HttpResponse('sixstar python')
response.status_code = 400
response['sixstar'] = 'Python'
return response
你是否有很多疑問?有就對了,繼續往下看吧
3.HttpResponse子類
Django提供了一系列HttpResponse的子類,可以快速設置狀態碼,如下列出常見的,僅供參考
- HttpResponseRedirect 301
- HttpResponsePermanentRedirect 302
- HttpResponseNotModified 304
- HttpResponseBadRequest 400
- HttpResponseNotFound 404
- HttpResponseForbidden 403
- HttpResponseNotAllowed 405
- HttpResponseGone 410
- HttpResponseServerError 500
4.JsonResponse類
若要返回json數據,可以使用JsonResponse來構造響應對象
- 幫助我們將數據轉換爲json字符串
- 設置響應頭Content-Type爲 application/json
from django.http import JsonResponse
def demo_view(request):
return JsonResponse({'city': 'beijing', 'subject': 'python'})
5.redirect重定向
from django.shortcuts import redirect
def demo_view(request):
return redirect('/index.html')
- 路徑配置
url(r'^response_redirect/$',views.response_redirect),
每一篇博客都是用心之作,參考了很多同類文章結合創作,希望表達的簡潔易概,如果有錯誤希望大家評論區指正,我們一起探討學習,共同進步,請允許我小皮一下。
@Author:HaoXuan