Skip to main content
 首页 » 编程设计

python之为什么 Django django.contrib.auth.authenticate 需要就地参数

2024年08月16日34myhome

为什么 Django 的身份验证功能只适用于此?

user=authenticate( 
        username=request.POST['username'], 
        password=request.POST['password'] 
    ) 

而不是

user=authenticate( 
        request.POST['username'], 
        request.POST['password'] 
    ) 

请您参考如下方法:

可以有许多不同的身份验证后端,它们可能使用与用户名和密码不同的身份验证方式,即某种 token 。为了保持 authenticate() 方法的通用性,它必须以这种方式实现。
Official documentation说“它将凭据作为关键字参数,用户名 和密码 用于默认情况。”关键部分是:对于默认情况。
唯一可以作为位置参数给出的参数是可选的 request 参数。