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


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

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

聲明

login(**credentials)

如果您的站點使用 Django 的身份驗證係統並且您處理登錄用戶,您可以使用測試客戶端的login() 方法來模擬用戶登錄站點的效果。

調用此方法後,測試客戶端將擁有通過任何可能構成視圖一部分的基於登錄的測試所需的所有 cookie 和會話數據。

credentials 參數的格式取決於您使用的身份驗證後端(由您的 AUTHENTICATION_BACKENDS 設置配置)。如果您使用 Django 提供的標準身份驗證後端(ModelBackend),credentials 應該是用戶的用戶名和密碼,作為關鍵字參數提供:

>>> c = Client()
>>> c.login(username='fred', password='secret')

# Now you can access a view that's only available to logged-in users.

如果您使用不同的身份驗證後端,此方法可能需要不同的憑據。它需要後端的 authenticate() 方法所需的任何憑據。

login() 如果憑據被接受並且登錄成功,則返回 True

最後,您需要記住在使用此方法之前創建用戶帳戶。正如我們上麵解釋的,測試運行器是使用測試數據庫執行的,默認情況下不包含任何用戶。因此,在您的生產站點上有效的用戶帳戶將無法在測試條件下工作。您需要創建用戶作為測試套件的一部分 - 手動(使用 Django 模型 API)或使用測試夾具。請記住,如果您希望您的測試用戶擁有密碼,則不能通過直接設置密碼屬性來設置用戶的密碼 - 您必須使用 set_password() 函數來存儲正確散列的密碼。或者,您可以使用 create_user() 輔助方法創建具有正確散列密碼的新用戶。

相關用法


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