當前位置:成語大全網 - 書法字典 - Getitem詞典

Getitem詞典

HttpRequest對象

HttpRequest代表來自客戶端的單獨HTTP請求。

HttpRequest實例的屬性包含關於此請求的最重要信息(有關詳細信息,請參見表H-1)。除會話外的所有屬性都應被視為只讀。

表h-1。httprequest對象的屬性

屬性

形容

Path是壹個字符串,表示提交請求頁面的完整地址,不包括域名,例如“/music/bands/the_beatles/”。

方法

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

if request . method = =‘GET‘:

做某事()

elif request . method = =‘POST‘:

do_something_else()

獲取壹個類字典對象,其中包含HTTP GET參數的所有信息。請參見QueryDict文檔。

郵政

壹個類字典對象,包含關於HTTP的POST參數的所有信息。請參見QueryDict文檔。

通過POST提交的請求可能包含壹個空的POST字典,也就是說,通過POST方法提交的表單可能不包含數據。因此,如果需要。不應使用POST來判斷POST方法的使用,但如果request . method = =“POST“(請參見表中的方法條目)。

註意:帖子不包含文件上傳信息。參見文件。

請求

為了方便起見,這是壹個類字典對象,首先搜索POST,然後搜索GET。受PHP的$ _ REQEUST的啟發。

例如,如果GET = {“name“:“john“},POST = {“age“:‘34“},則REQUEST【“name“】將為“John“,REQUEST【“age“】將為“34“。

強烈建議使用GET和POST而不是REQUEST。這是為了向前兼容和更清晰的表示。

cookies是壹個包含所有COOKIES的標準Python字典。鍵和值都是字符串。有關cookie使用的更多信息,請參見第12章。

文件

包含所有上載文件的類字典對象。文件的密鑰來自

Filename:表示上傳文件的文件名的字符串。

內容類型:上傳文件的內容類型。

內容:上傳文件的原始內容。

請註意,僅當請求的方法是POST且已提交時,文件才可用

元宇宙

包含所有有效HTTP頭信息的標準Python字典。有效的標頭信息與客戶端和服務器相關。這裏有幾個例子:

內容長度

內容類型

QUERY_STRING:未解析的原始請求字符串。

遠程ADDR:客戶端IP地址。

REMOTE_HOST:客戶端的主機名。

SERVER_NAME:服務器主機名。

SERVER_PORT:服務器端口號。

任何在META中有效的HTTP頭信息都是帶有HTTP_ prefix的鍵,例如:

HTTP _接受_編碼

HTTP _接受_語言

HTTP_HOST:客戶端發送的主機頭信息。

HTTP_REFERER:指向的頁面,如果它存在的話。

HTTP_USER_AGENT:客戶端的用戶代理字符串。

http _ x _ bender:x-bender頭信息的值(如果設置了的話)。

用戶

django . contrib . auth . models . user對象表示當前登錄的用戶。如果當前用戶沒有登錄,用戶將被設置為django的壹個實例。contrib.auth.models .匿名用戶。它們可以與is_authenticated()區分開來:

if request . user . is _ authenticated():

#為登錄用戶做點什麽。

否則:

#為匿名用戶做點什麽。

僅當Django激活AuthenticationMiddleware時,用戶才有效。

有關身份驗證和用戶的完整詳細信息,請參見第12章。

Session壹個表示當前會話的可讀可寫的類字典對象。僅當Django激活會話支持時有效。請參見第12章。

發布原始數據。用於復雜的數據處理。

請求對象還包含壹些有用的方法,如表H-2所示。

表H-2。HttpRequest的方法

方法

形容

_ _ getitem _ _(key)

請求給定鍵的GET/POST值,首先查找POST,然後查找GET。如果該鍵不存在,則會引發異常KeyError。

該方法使用戶能夠通過訪問字典來訪問HttpRequest的實例。

例如,請求【“foo“】與檢查請求相同。在檢查請求之前發布【“foo“】。GET【“foo“】。

Has_key()返回True或False,指示是否請求。獲取或請求。POST包含給定的鍵。

Get_full_path()返回路徑,如果請求字符串有效,則將其追加到請求字符串之後。例如“/music/bands/the _ beats/?print=true“。

如果請求是安全的,Is_secure()將返回True。換言之,請求是以HTTPS的形式提交的。

QueryDict對象

在HttpRequest對象中,GET和POST屬性都是django.http.QueryDict QueryDict是壹個類似於字典的類,專門用於用壹個鍵處理多值。當處理壹些HTML表單中的元素時,尤其是

翻譯....

QueryDict實例是不可變的,除非創建了copy()副本。也就是說,請求的屬性。發布和請求。GET不能直接更改。

QueryDict實現了所有標準的字典方法,因為它是字典的子類。表H-3中列出了與它不同的所有內容。

表H-3。查詢詞典和標準詞典的區別

方法

不同於標準詞典。

__getitem__與字典相同。但是,當壹個鍵有多個值時,__getitem__()返回最後壹個值。

__setitem__將給定鍵的值設置為【value】(只有壹個value元素的Python列表)。請註意,它只能被稱為變量QueryDict(由copy()創建),因為它對其他字典函數有副作用。

Get()如果壹個鍵有多個值,如__getitem__,get()將返回最後壹個值。

更新()

該參數是壹個查詢字典或標準字典。和標準詞典

更新不同,此方法*添加*而不是替換內容:

& gt& gt& gtq = query dict(‘a = 1‘)

& gt& gt& gtq = q . copy()#使其成為變量。

& gt& gt& gtq . update({“a“:“2“})

& gt& gt& gtq . getlist(‘a‘)

['1', '2']

& gt& gt& gtq【‘a‘】#返回最後壹個值。

['2']

項目()

與標準字典中的items()方法類似,不同之處在於它返回像_ _ getitem()_ _這樣的最後壹個值:

& gt& gt& gtq = query dict(‘a = 1 & amp;a = 2 & ampa = 3’)

& gt& gt& gt問題項()

【(‘a’,‘3’)】

Values()與標準字典中的values()方法相同,只是它返回像_ _ getitem()_ _這樣的最後壹個值。

此外,QueryDict具有表H-4中列出的方法。

表H-4。其他(非字典)查詢方法

方法

形容

Copy()使用Python標準庫中的copy.deepcopy()返回對象的副本。副本是可變的,也就是說,您可以更改其值。

getlist(key)以Python列表的形式返回所請求的鍵的數據。如果該鍵不存在,則返回壹個空列表。它保證將返回某種形式的列表。

set list(key,list_)將給定鍵的鍵值設置為list_(不同於__setitem__())。

appendlist(key,item)將項目添加到與key相關的列表中。

setlist default(key,l)與setdefault相同,只是它的第二個參數是列表而不是值。

列表()

與items()類似,不同之處在於它以列表的形式返回字典中每個成員的所有值。例如:

& gt& gt& gtq = query dict(‘a = 1 & amp;a = 2 & ampa = 3’)

& gt& gt& gt問題列表()

【(‘a‘,【‘1‘,‘2‘,‘3‘)】】

Urlencode()返回請求字符串格式的數據字符串(例如,“A = 2 &;b = 3 & ampb=5“)。

壹個完整的例子。

例如,給定以下HTML表單:

& lt表單操作=“/foo/bar/“method =“post“& gt;

& lt輸入type =“text“name =“your _ name“/& gt;

& lt選擇multiple =“multiple“name =“bands“& gt;

& lt選項值=“Beatles“& gt;甲殼蟲樂隊& lt/option & gt;

& lt選項值=“who“& gt;世界衛生組織</option & gt;

& lt選項值=“僵屍“& gt僵屍& lt/option & gt;

& lt/select & gt;

& lt輸入類型=“submit“/& gt。

& lt/form & gt;

如果用戶在your_name中輸入“John Smith”,並且在多選框中選擇了披頭士和僵屍,那麽Django的請求對象如下所示:

& gt& gt& gt請求。得到

{}

& gt& gt& gt請求。郵政

{‘your _ name‘:【‘John Smith‘】,‘bands‘:【‘Beatles‘,‘僵屍‘】}

& gt& gt& gt請求。發布【‘您的姓名‘】

約翰·史密斯

& gt& gt& gt請求。帖子【‘樂隊‘】

僵屍

& gt& gt& gt請求。POST.getlist(“樂隊”)

【“披頭士”、“僵屍”】

& gt& gt& gt請求。post . get(‘妳的名字’,‘阿德裏安’)

約翰·史密斯

& gt& gt& gt請求。post . get(‘不存在的字段‘,‘無處可去的人‘)

“無依之人”

使用時請註意:

Get、post、cookies、files、meta、request、raw _ post _ data和user都延遲加載。也就是說,Django不會花費資源來計算這些屬性值,除非在代碼中訪問它們。