class LoginView(views.APIView): """ 用户登录 """def post(self, request, *args, **kwargs): """ :param request: :return: """ userSerializer = LoginSerializer(data=request.data) if not userSerializer.is_valid(): return Response({‘code‘: 2004, ‘msg‘: ‘前端数据格式错误:%s‘ % userSerializer.errors}) username = userSerializer.data.get(‘username‘) password = userSerializer.data.get(‘password‘) type = userSerializer.data.get(‘type‘) if type == 1: # 密码登录 user = auth.authenticate(username=username, password=password) if user: auth.login(request._request, user) # 千万不要用auth.login(request, user)会出错!!!!restframework的request和django原生的request不同,退出登录也是auth.logout(request._request)
results = dict(code=2001, msg=‘登录成功‘, data=PersonalInfoSerializer(user).data) else: results = dict(code=2004, msg=‘用户名与密码不匹配,登录失败‘)