在介紹 Django 內(nèi)置的響應(yīng)類之前,讀者需要了解 HTTP 的響應(yīng)方式。
首先:網(wǎng)站的運(yùn)行原理是遵從 HTTP 協(xié)議,分為 HTTP 請(qǐng)求和 HTTP 響應(yīng)。HTTP 響應(yīng)方式也稱為 HTTP 狀態(tài)碼,分為5中狀態(tài):消息、成功、重定向、請(qǐng)求錯(cuò)誤和服務(wù)器錯(cuò)誤。若以使用頻率劃分,則 HTTTP 狀態(tài)碼可分為:成功、重定向和異常響應(yīng)(請(qǐng)求錯(cuò)誤和服務(wù)器錯(cuò)誤)。
其次:在 Django 中,視圖函數(shù)是通過 return 方式返回響應(yīng)內(nèi)容,然后生成相應(yīng)的網(wǎng)頁內(nèi)容呈現(xiàn)在瀏覽器上。return 是 Python 的內(nèi)置語法,用于設(shè)置函數(shù)的返回值,若要設(shè)置不同的相應(yīng)方式,則需要 Django 內(nèi)置的響應(yīng)類,如下所示:
響應(yīng)類型 說明
HttpResponse('Hello world') 狀態(tài)碼200,請(qǐng)求已成功被服務(wù)器接收
HttpResponseRedirect('/') 狀態(tài)碼302,重定向首頁地址
HttpResponsePermanentRedirect('/') 狀態(tài)碼301,永久重定向首頁地址
HttpResponseBadRequest('400') 狀態(tài)碼400,訪問的頁面不存在或請(qǐng)求錯(cuò)誤
HttpResponseNotFound('404') 狀態(tài)碼404,網(wǎng)頁不存在或網(wǎng)頁的URL失效
HttpResponseForbidden('403') 狀態(tài)碼403,沒有訪問權(quán)限
HttpResponseNotAllowed('405') 狀態(tài)碼405,不允許使用該請(qǐng)求方式
HttpResponseServerError('500') 狀態(tài)碼500,服務(wù)器內(nèi)容錯(cuò)誤
JsonResponse({'foo':'bar'}) 默認(rèn)狀態(tài)碼200,響應(yīng)內(nèi)容為JSON數(shù)據(jù)
StreamingHttpResponse() 默認(rèn)狀態(tài)碼200,響應(yīng)內(nèi)容以流式輸出
不同的響應(yīng)方式代表不同的 HTTP 狀態(tài)碼,其核心作用是 Web Server 服務(wù)器用來告訴瀏覽器當(dāng)前的網(wǎng)頁請(qǐng)求發(fā)生了什么事,或者當(dāng)前 Web 服務(wù)器的響應(yīng)狀態(tài)。上述的相應(yīng)類主要來自于模塊 django.http,該模塊是實(shí)現(xiàn)響應(yīng)功能的核心。
希望以上內(nèi)容對(duì)各位有所幫助。






