示例#1
0
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__))
示例#2
0
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__))
示例#3
0
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__))