示例#1
0
 def check_password(self, request):
     # 接受session上的id值
     id = request.session.get("id")
     # 到数据库查询用户的密码
     password = Users.objects.get(pk=id).password
     # 判断用户输入的旧密码和数据库的密码是否一致
     if password != set_password(self.cleaned_data.get('password')):
         # 密码不一致
         self.add_error('password', '旧密码错误')
         return False
     else:
         return True
示例#2
0
 def post(self, request):
     # 接收参数
     data = request.POST
     # 验证数据的合法性
     login_form = LoginModelForm(data)
     if login_form.is_valid():
         # 验证成功
         # 数据合法
         password = login_form.cleaned_data['password']
         username = login_form.cleaned_data.get('username')
         password = set_password(password)
         # 更新用户密码
         Users.objects.filter(username=username).update(password=password)
         # 操作数据库
         # 返回到登录
         return redirect('用户:忘记密码')
     else:
         # 合成响应
         # 验证不通过,返回注册页面
         # 进入到注册页面
         return render(request, 'user/forgetpassword.html',
                       {'form': login_form})
示例#3
0
    def clean(self):
        # # 验证手机号
        # 从清洗的数据中的得到手机号
        username = self.cleaned_data.get('username')

        try:
            # 如果 清洗的数据中有手机号和数据库的一致
            user = Users.objects.get(username=username)
        except Users.DoesNotExist:
            # 不一致,提示错误
            raise forms.ValidationError({'username': '******'})

        # 验证密码
        # 空字符串是因为创建的加密方法需要必须传值
        password = self.cleaned_data.get('password', '')
        # 如果 清洗的数据中有密码和数据库的不一致,提示错误信息
        if user.password != set_password(password):
            raise forms.ValidationError({'password': '******'})

        # 返回所有清洗后的数据
        self.cleaned_data['user'] = user
        return self.cleaned_data
示例#4
0
 def post(self, request):
     # 完成用户信息的注册
     # 接收参数
     # 渲染提交的数据
     data = request.POST
     # 验证表单参数合法性 用表单来验证
     form = RegisterModelForm(data)
     if form.is_valid():
         # 操作数据库
         cleaned_data = form.cleaned_data
         # 创建一个注册用户
         # 得到清洗过的数据
         # user = Users()
         # user.username = cleaned_data.get('username')
         # user.password = set_password(cleaned_data.get('password'))
         # user.save()
         username = cleaned_data.get('username')
         password = set_password(cleaned_data.get('password'))
         # 将数据保存到数据库
         Users.objects.create(username=username, password=password)
         return redirect('用户:用户登录')
     else:
         # 错误信息提示
         return render(request, self.template_name, context={'form': form})
示例#5
0
    def post(self, request):
        # 接收用户传过来的参数
        data = request.POST
        # 创建一个对象来检查信息的合法性
        form = ResetPassWordForm(data)
        # 验证数据的合法性
        if form.is_valid():
            # 数据合法
            # 接收清洗后的数据
            id = request.session.get('id')
            if form.check_password(request):
                # 密码一致,将数据写入到数据库当中
                # 将密码加密
                password1 = set_password(form.cleaned_data.get('password1'))
                # 将密码写到数据库
                Users.objects.filter(pk=id).update(password=password1)
                # 跳转到登录页面
                return redirect('用户:用户登录')
            else:
                return render(request, 'user/password.html', {"form": form})

        else:
            # 数据不合法, 继续修改
            return render(request, 'user/password.html/', {"form": form})