1. 程式人生 > >python request鍵值判斷

python request鍵值判斷

if  request.REQUEST.has_key('鍵值'):

HttpRequest物件的屬性

參考:

H-1. HttpRequest物件的屬性

屬性

描述

path

表示提交請求頁面完整地址的字串,不包括域名,如 "/music/bands/the_beatles/"

method

表示提交請求使用的HTTP方法。它總是大寫的。例如:

if request.method == 'GET':

    do_something()

elif request.method == 'POST':

    do_something_else()

GET

一個類字典物件,包含所有的

HTTPGET引數的資訊。見 QueryDict文件。

POST

一個類字典物件,包含所有的HTTPPOST引數的資訊。見 QueryDict文件。

通過POST提交的請求有可能包含一個空的 POST字典,也就是說, 一個通過POST方法提交的表單可能不包含資料。因此,不應該使用 ifrequest.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的原始資料。 用於對資料的複雜處理。

Request物件同樣包含了一些有用的方法,見表H-2

H-2. 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的形式提交的。