当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。