榛果(Django)使用物件的方式處理HTTP請求(request)與HTTP回應(response)。
當一個網址被要求時,榛果(Django)將建立一個類型為HttpRequest的物件,此HttpRequest之中將包含所有關於此HTTP請求的中繼資料(metadata),也就是此HTTP請求的所有資訊。
榛果(Django)將依據urls.py載入適當的視圖(View),此HttpRequest物件則傳入視圖(View)中的處理函式,作為函式的第一個引數(argument),因為在視圖(View)中定義的函式,其函式原型的參數(parameter)是HttpRequest的類型。
當視圖(View)中的函式處理完HTTP請求,它必須回傳(return)一個類型為HttpResponse的物件回榛果(Django)。
基本上來說,你所撰寫的程式就是處理HTTP的請求而產生HTTP回應,所以你必須熟悉HttpRequest與HttpResponse兩個物件的操作,若能有一定的熟悉度,那榛果(Django)的學習之路已經成功一半了!
所屬類別:HttpRequest
模組位置:django.http
所有的屬性都應該是唯讀(read-only),除了session屬性之外。
HttpRequest.path
字串,HTTP請求的完整路徑,不包含網域名稱。
HttpRequest.method
字串,HTTP請求的方法,保證是大寫(uppercase)的字串。
HttpRequest.encoding
字串,HTTP請求的編碼方式,用來解碼所送出的資料,如果是None則用設定檔中的DEFAULT_CHARSET參數解碼。
HttpRequest.GET
字典類型物件(dictionary-like object),包含所有HTTP的GET參數。
HttpRequest.POST
字典類型物件(dictionary-like object),包含所有HTTP的POST參數。
HttpRequest.REQUEST
字典類型物件(dictionary-like object),包含所有HTTP請求的參數,為了便利性,HttpRequest.REQUEST先搜尋POST的參數,在搜尋GET的參數,非常建議直接使用HttpRequest.GET和HttpRequest.POST,因為這樣比較明確!
HttpRequest.COOKIES
字典類型物件(dictionary-like object),包含所有cookie的參數,鍵(key)與值(value)都是字串類型。
HttpRequest.FILES
字典類型物件(dictionary-like object),包含所有上傳的檔案物件。
HttpRequest.META
字典類型物件(dictionary-like object),包含所有HTTP標頭欄位(header)的資訊。
HttpRequest.user
當啟用Django的認證機制時,HttpRequest.user表示為django.contrib.auth.models.User的物件,代表現在登入的使用者。如果是未登入的使用者,則為django.contrib.auth.models.AnonymousUser。
HttpRequest.session
字典類型物件(dictionary-like object),可讀寫的資料,用於儲存現在client與server的對話狀態。
HttpRequest.raw_post_data
原始的HTTP的POST參數,這項參數是給進階的資料處理,一般還是建議使用HttpRequest.POST。
HttpRequest.urlconf
Django本身未定義,如果其他的程式碼定義則可以讀取。當此參數存在時,HttpRequest.urlconf將覆寫系統的ROOT_URLCONF。
HttpRequest.get_host()
取得請求主機的位址,依據HTTP通訊協定的 HTTP_X_FORWARDED_HOST或是HTTP_HOST標頭欄位(依此順序尋找),如果用戶端(Client)未使用,則使用SERVER_NAME和SERVER_PORT回覆。
HttpRequest.get_full_path()
取得請求的路徑(path),包含額外的GET請求字串(query string)。
HttpRequest.build_absolute_uri(location)
取得location所在的絕對URI路徑,若location未指定,則設定為get_full_path()取得絕對路徑。
HttpRequest.is_secure()
若使用HTTPS通訊協定,則傳回True值。
HttpRequest.is_ajax()
若使用XMLHttpRequest發出HTTP請求則傳回True值,此方法是藉由判斷HTTP_X_REQUESTED_WITH標頭欄位是不是設定為XMLHttpRequest。
所屬類別:HttpResponse
模組位置:django.http
HttpResponse.content
HttpResponse.__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE)
HttpResponse.__setitem__(header, value)
HttpResponse.__delitem__(header)
HttpResponse.__getitem__(header)
HttpResponse.has_header(header)
HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None)
HttpResponse.delete_cookie(key, path='/', domain=None)
HttpResponse.write(content)
HttpResponse.flush()
HttpResponse.tell()
HttpResponseRedirect
HttpResponsePermanentRedirect
HttpResponseNotModified
HttpResponseBadRequest
HttpResponseNotFound
HttpResponseForbidden
HttpResponseNotAllowed
HttpResponseGone
HttpResponseServerError