示例#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
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()