HttpRequest對象的屬性 |
|
屬性 |
描述 |
path |
表示提交請求頁面完整地址的字符串,不包括域名,如 "/music/bands/the_beatles/"。 |
method |
表示提交請求使用的HTTP方法。它總是大寫的。例如: if request.method == 'GET': do_something() elif request.method == 'POST': do_something_else() |
GET |
一個類字典對象,包含所有的HTTP的GET參數的信息。見 QueryDict 文檔。 |
POST |
一個類字典對象,包含所有的HTTP的POST參數的信息。見 QueryDict 文檔。 通過POST提交的請求有可能包含一個空的 POST 字典,也就是說, 一個通過POST方法提交的表單可能不包含數據。因此,不應該使用 if request.POST 來判斷POST方法的使用,而是使用 if request.method == "POST" (見表中的 method 條目)。 注意: POST 並 不 包含文件上傳信息。見 FILES 。 |
REQUEST |
為了方便而創建,這是一個類字典對象,先搜索 POST ,再搜索 GET 。 靈感來自於PHP的 $_REQEUST 。 例如, 若 GET = {"name": "john"} , POST = {"age": '34'} ,REQUEST["name"] 會是 "john" , REQUEST["age"] 會是 "34" 。 強烈建議使用 GET 和 POST ,而不是 REQUEST 。這是為了向前兼容和更清楚的表示。 |
COOKIES |
一個標准的Python字典,包含所有cookie。鍵和值都是字符串。cookie使用的更多信息見第12章。 |
FILES |
一個類字典對象,包含所有上傳的文件。 FILES 的鍵來自 <input type="file" name="" /> 中的 name 。 FILES 的值是一個標准的Python字典,包含以下三個鍵: filename :字符串,表示上傳文件的文件名。 content-type :上傳文件的內容類型。 content :上傳文件的原始內容。 注意 FILES 只在請求的方法是 POST ,並且提交的 <form> 包含enctype="multipart/form-data" 時才包含數據。否則, FILES 只是一個空的類字典對象。 |
META |
一個標准的Python字典,包含所有有效的HTTP頭信息。有效的頭信息與客戶端和服務器有關。這里有幾個例子: CONTENT_LENGTH CONTENT_TYPE QUERY_STRING :未解析的原始請求字符串。 REMOTE_ADDR :客戶端IP地址。 REMOTE_HOST :客戶端主機名。 SERVER_NAME :服務器主機名。 SERVER_PORT :服務器端口號。 在 META 中有效的任一HTTP頭信息都是帶有 HTTP_ 前綴的鍵,例如: HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_HOST :客戶端發送的 Host 頭信息。 HTTP_REFERER :被指向的頁面,如果存在的。 HTTP_USER_AGENT :客戶端的user-agent字符串。 HTTP_X_BENDER : X-Bender 頭信息的值,如果已設的話。 |
user |
一個 django.contrib.auth.models.User 對象表示當前登錄用戶。 若當前用戶尚未登錄, user 會設為 django.contrib.auth.models.AnonymousUser 的一個實例。可以將它們與 is_authenticated() 區別開: if request.user.is_authenticated(): # Do something for logged-in users. else: # Do something for anonymous users. user 僅當Django激活 AuthenticationMiddleware 時有效。 關於認證和用戶的完整細節,見第12章。 |
session |
一個可讀寫的類字典對象,表示當前session。僅當Django已激活session支持時有效。見第12章。 |
raw_post_data |
POST的原始數據。 用於對數據的復雜處理。 |
HttpRequest 的方法 |
|
方法 |
描述 |
__getitem__(key) |
請求所給鍵的GET/POST值,先查找POST,然后是GET。若鍵不存在,則引發異常KeyError 。 該方法使用戶可以以訪問字典的方式來訪問一個 HttpRequest 實例。 例如, request["foo"] 和先檢查 request.POST["foo"] 再檢查request.GET["foo"] 一樣。 |
has_key() |
返回 True 或 False ,標識 request.GET 或 request.POST 是否包含所給的鍵。 |
get_full_path() |
返回 path ,若請求字符串有效,則附加於其后。例如,"/music/bands/the_beatles/?print=true" 。 |
is_secure() |
如果請求是安全的,則返回 True 。也就是說,請求是以HTTPS的形式提交的。
|