示例#1
0
def register():
    """注册
    1. 接收参数(手机号, 短信验证码, 密码(明文))
    2. 校验参数(判断参数是否齐全,手机号是否合法)
    3.查询服务器存储的短信验证码
    4. 跟客户传入的短信验证码对比
    5. 如果对比成功,则创建USer模型对象,并赋值属性
    6. 同步数据模型到数据库
    7. 将状态保持数据写入session(实现注册即登录)
    8. 返回注册结果"""
    # 1.接收参数(手机号, 短信验证码, 密码(明文))
    # json 封装了==json.loads(json_str)
    json_dict = request.json
    mobile = json_dict.get('mobile')
    smscode_client = json_dict.get('smscode')
    password = json_dict.get('password')
    # 2.校验参数(判断参数是否齐全, 手机号是否合法)
    if not all([mobile, smscode_client, password]):
        # '{'errno':'0', 'errmsg':'OK'}'
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='缺少参数')
    if not re.match(r'^1[345678][0-9]{9}$', mobile):
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='手机号格式错误')
    # 3.查询服务器存储的短信验证码
    try:
        smscode_server = redis_store.get('SMS:' + mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=response_code.RET.DBERR, errmsg='查询短信验证码失败')

    if not smscode_server:
        return jsonify(errno=response_code.RET.NODATA, errmsg='短信验证码不存在')
    # 4.跟客户传入的短信验证码对比
    if smscode_client != smscode_server:
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='输入短信验证码错误')
    # 5.如果对比成功, 则创建USer模型对象, 并赋值属性
    user = User()
    user.mobile = mobile
    user.nick_name = mobile
    user.password = password
    user.last_login = datetime.datetime.now()
    # 6.同步数据模型到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=response_code.RET.DBERR, errmsg='存储数据失败')
    # 7. 将状态保持数据写入session(实现注册即登录)
    session['user_id'] = user.id
    session['mobile'] = user.mobile
    session['nick_name'] = user.nick_name
    # 8. 返回注册结果
    return jsonify(errno=response_code.RET.OK, errmsg='注册成功')
示例#2
0
文件: user.py 项目: YingdaXia/gobang
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        new_user.iconnum = request.GET['iconnum']
        new_user.status = 10000
        new_user.latest_time = "2015-01-01 12:00:00"
        new_user.score = 0
        new_user.win_num = 0
        new_user.tie_num = 0
        new_user.lose_num = 0
        dict1 = {'login': '******', 'reg': '0' }
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            user_num = User.objects.filter(lobby_id=(i+1)).__len__()
            lobby = {
                'user_num': user_num,
                'lobby_name': all_lobbies[i].name
            }
            lobbies.append(lobby)
        if new_user.password == password_again :
            if not has_same_uid(new_user):
                new_user.save()
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
            else:
                dict1['reg'] = '1'
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
        else:
            dict1['reg'] = '2'
            return render(request, 'index.html', {
                'Dict': json.dumps(dict1),
                'lobbies': lobbies,
                'form': form,
            })
示例#3
0
文件: user.py 项目: YingdaXia/gobang
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        new_user.iconnum = request.GET['iconnum']
        new_user.status = 10000
        new_user.latest_time = "2015-01-01 12:00:00"
        new_user.score = 0
        new_user.win_num = 0
        new_user.tie_num = 0
        new_user.lose_num = 0
        dict1 = {'login': '******', 'reg': '0'}
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            user_num = User.objects.filter(lobby_id=(i + 1)).__len__()
            lobby = {'user_num': user_num, 'lobby_name': all_lobbies[i].name}
            lobbies.append(lobby)
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
            else:
                dict1['reg'] = '1'
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
        else:
            dict1['reg'] = '2'
            return render(request, 'index.html', {
                'Dict': json.dumps(dict1),
                'lobbies': lobbies,
                'form': form,
            })
示例#4
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return HttpResponseRedirect("http://127.0.0.1:8000")
            else:
                return HttpResponse("same name!")
        else:
            return HttpResponse("两次密码输入不一致!")
示例#5
0
文件: user.py 项目: mysljq/gobang
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return HttpResponseRedirect("http://127.0.0.1:8000")
            else:
                return HttpResponse("same name!")
        else:
            return HttpResponse("两次密码输入不一致!")
示例#6
0
def create_admin(name, password):

    if not all([name, password]):
        print("参数错误")

    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
    except Exception as err:
        print(err)
        db.session.rollback()