當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Django Client.get用法及代碼示例


本文介紹 django.test.Client.get 的用法。

聲明

get(path, data=None, follow=False, secure=False, **extra)

對提供的 path 發出 GET 請求並返回 Response 對象,如下所述。

data 字典中的鍵值對用於創建 GET 數據負載。例如:

>>> c = Client()
>>> c.get('/customers/details/', {'name': 'fred', 'age': 7})

…將導致對 GET 請求的評估等效於:

/customers/details/?name=fred&age=7

extra 關鍵字參數參數可用於指定要在請求中發送的標頭。例如:

>>> c = Client()
>>> c.get('/customers/details/', {'name': 'fred', 'age': 7},
...       HTTP_ACCEPT='application/json')

…將 HTTP 標頭 HTTP_ACCEPT 發送到詳細信息視圖,這是測試使用 django.http.HttpRequest.accepts() 方法的代碼路徑的好方法。

CGI 規範

通過**extra 發送的標頭應遵循CGI 規範。例如,在從瀏覽器到服務器的 HTTP 請求中模擬不同的 “Host” 標頭應作為 HTTP_HOST 傳遞。

如果您已經擁有 URL 編碼形式的 GET 參數,則可以使用該編碼而不是使用 data 參數。例如,之前的 GET 請求也可以構成為:

>>> c = Client()
>>> c.get('/customers/details/?name=fred&age=7')

如果您提供的 URL 同時包含編碼的 GET 數據和數據參數,則數據參數將優先。

如果您將follow 設置為True,則客戶端將遵循任何重定向,並且將在包含中間url 和狀態代碼的元組的響應對象中設置redirect_chain 屬性。

如果您有一個 URL /redirect_me/ 重定向到 /next/ ,該 URL 重定向到 /final/ ,這就是您所看到的:

>>> response = c.get('/redirect_me/', follow=True)
>>> response.redirect_chain
[('http://testserver/next/', 302), ('http://testserver/final/', 302)]

如果將 secure 設置為 True,客戶端將模擬 HTTPS 請求。

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.test.Client.get。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。