Django电商网站--登录功能
Posted 王伟路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django电商网站--登录功能相关的知识,希望对你有一定的参考价值。
在完成注册功能之后,登录功能就较为简单了,主要思路逻辑如下:
设置LoginView类负责登录功能
设置get方法负责响应请求,反馈用户登录页面
设置post方法 得到用户填写的用户名/手机号以及密码和是否保持登录状态的选择
校验用户名/手机号以及密码是否填写完整及合规
用Django自带的authenticate函数校验用户名及密码并相应结果
如果用户勾选同意保持登录状态,则设置session的过期时间,默认2周,如果用户不同意,则设置session过期时间为0
最后重定向至响应的页面。
需要注意的是,Django中封装的authenticate函数只设置了校验username,如果需要用户通过手机号也能登录,那就需要将原有的方法进行修改,在使用一个新类(UsernameMobileBackend)继承ModelBackend类,并在authenticate方法中增加mobile,
try:
if re.match(r\'^1[3-9]\\d{9}$\', account): #username == 手机号
user = User.objects.get(mobile=account)
else:
user = User.objects.get(username=account)
except User.DoesNotExist:
return None
else:
return user
之后还要在setting文件中进行关联设置
指定自定义用户认证后端
AUTHENTICATION\\_BACKENDS = [\'apps.users.utils.UsernameMobileBackend\']
以上是关于Django电商网站--登录功能的主要内容,如果未能解决你的问题,请参考以下文章