关于python:Django电商网站登录功能

3次阅读

共计 705 个字符,预计需要花费 2 分钟才能阅读完成。

在实现注册性能之后,登录性能就较为简单了,次要思路逻辑如下:
设置 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’]

正文完
 0