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电商网站--登录功能的主要内容,如果未能解决你的问题,请参考以下文章

Django电商网站--注册功能

电商网站开发建设功能分析

电商网站中添加商品到购物车功能模块2017.12.8

关于电商网站购物车功能如何与登录账号相关联的一点想法

创建电商网站

创建电商网站