def login(req): ''' 用户登录 并且在登录后初始化各个表数据 :param req: :return: ''' rep = BaseResponse() form = LoginForm(req.POST) if form.is_valid(): _value_dict = form.clean() # print(_value_dict) if _value_dict['code'].lower() != req.session['CheckCode'].lower(): rep.message = {'code': [{'message': '验证码错误'}]} return HttpResponse(json.dumps(rep.__dict__)) ''' 如果验证码正确,则进行Q查询 ''' from django.db.models import Q con = Q() q1 = Q() q2 = Q() q1.connector = 'AND' # 在q1中创建逻辑关系符 ,然后把数据库中的值与用户输入的值进行比较 q1.children.append(('email', _value_dict['user'])) q1.children.append(('password', _value_dict['pwd'])) q2.connector = 'AND' q2.children.append(('username', _value_dict['user'])) q2.children.append(('password', _value_dict['pwd'])) con.add(q1, 'OR') con.add(q2, 'OR') obj = models.UserInfo.objects.filter(con).first() if not obj: rep.message = {'user': [{'message': '用户名或邮箱或密码错误!'}]} return HttpResponse(json.dumps(rep.__dict__)) req.session['is_login'] = True req.session['user_info'] = { 'nid': obj.nid, 'email': obj.email, 'username': obj.username } rep.status = True # 表检查 table_verify(obj) else: error_msg = form.errors.as_json() rep.message = json.loads(error_msg) return HttpResponse(json.dumps(rep.__dict__))
def login(request): """ 用户登陆 :param request: :return: """ rep = BaseResponse() form = LoginForm(request.POST) if form.is_valid(): _value_dict = form.clean() if _value_dict['code'].lower() != request.session["CheckCode"].lower(): rep.message = {'code': [{'message': '验证码错误'}]} return HttpResponse(json.dumps(rep.__dict__)) from django.db.models import Q con = Q() q1 = Q() q1.connector = 'AND' q1.children.append(('email', _value_dict['user'])) q1.children.append(('password', _value_dict['pwd'])) q2 = Q() q2.connector = 'AND' q2.children.append(('username', _value_dict['user'])) q2.children.append(('password', _value_dict['pwd'])) con.add(q1, 'OR') con.add(q2, 'OR') obj = models.UserInfo.objects.filter(con).first() if not obj: rep.message = {'user': [{'message': '用户名邮箱或密码错误'}]} return HttpResponse(json.dumps(rep.__dict__)) request.session['is_login'] = True request.session['user_info'] = { 'nid': obj.nid, 'email': obj.email, 'username': obj.username } rep.status = True else: error_msg = form.errors.as_json() rep.message = json.loads(error_msg) return HttpResponse(json.dumps(rep.__dict__))
def login(request): """用户登录""" rep = BaseResponse() form =LoginForm(request.POST) if form.is_valid(): # 先检查图形验证码是否匹配 _value_dict = form.clean() if _value_dict["code"].lower() != request.session["CheckCode"].lower(): rep.message = {"code": [{"message": "验证码错误"}]} # 如果验证码正确,数据库中匹配用户名&密码或邮箱&密码 con = Q() q1 = Q() q1.connector = "AND" q1.children.append(("email", _value_dict["user"])) q1.children.append(("password", _value_dict["pwd"])) q2 = Q() q2.connector = "AND" q2.children.append(("username", _value_dict["user"])) q2.children.append(("password", _value_dict["pwd"])) con.add(q1, "OR") con.add(q2, "OR") obj = models.UserInfo.objects.filter(con).first() if not obj: rep.message = {"user": [{"message": "用户名邮箱或密码错误"}]} return HttpResponse(json.dumps(rep.__dict__)) # 如果验证正确,设置session request.session["is_login"] = True request.session["user_info"] = {'nid': obj.nid, 'email': obj.email, 'username': obj.username} rep.status = True else: error_str = form.errors.as_json() rep.message = json.loads(error_str) return HttpResponse(json.dumps(rep.__dict__))