Exemple #1
0
def register():
    """
    1.获取参数
    2.校验参数
    3.取到服务器验证码
    4.比对验证码
    5.成功创建user模型 添加数据库
    6.返回值
    :return:
    """
    params_dict = request.json
    current_app.logger.error(params_dict)
    mobile = params_dict["mobile"]
    smscode = params_dict["smscode"]
    passwprd = params_dict["password"]

    #校验参数
    if not all([mobile,smscode,passwprd]):
        return jsonify(erron=RET.PARAMERR,errmsg='参数为空')
    #效验手机号码是否正确
    if not re.match('1[35678]\\d{9}',mobile):
        return jsonify(errno=RET.PARAMERR,errmsg="手机号码是否正确")
    #取到验证码
    try:
        real_sms_code=redis_store.get("SMS_"+mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR,errmsg="数据查询失败")
    if not real_sms_code:
        return jsonify(errno=RET.NODATA,errmsg="验证码已过期")
    #校验验证码
    if real_sms_code !=smscode:
        return jsonify(errno=RET.DBERR, errmsg="验证码输入错误")
    #生成新的用户
    user=models.User()
    user.mobile=mobile
    user.nick_name=mobile
    user.last_login=datetime.now()
    user.password=passwprd

    #添加到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg="数据保存失败")

    #往sesson中添加数据表示已经登录
    session["user_id"]=user.id
    session["mobile"]=user.mobile
    session["nick_name"]=user.nick_name

    #返回
    return jsonify(errno=RET.OK, errmsg="用户注册成功")
def register_index():
    """请求路径: /passport/register
        请求方式: POST
        请求参数: mobile, sms_code,password
        返回值: errno, errmsg

        1.获取参数
        2.检验参数,为空效验
        3.根据手机号取出redis中短信验证码
        4.短信验证码正确性
        5.检查密码是否符合要求
        6.查看数据库中是否有该用户
        7.把用户插入数据库中,完成注册
        8.返回相应

    """
    request_dict = request.get_json()
    mobile = request_dict.get("mobile")
    sms_code = request_dict.get("sms_code")
    password = request_dict.get("password")
    if not all([mobile,sms_code,password]):
        return jsonify(errno=RET.NODATA,errmsg="参数不能为空")
    try:
        redis_sms_code = redis_store.get("sms_code:%s"%mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR,errmsg="数据库提取验证码失败!")

    if not redis_sms_code:
        return jsonify(errno=RET.NODATA,errmsg="验证码已过期!")

    if sms_code != redis_sms_code:
        return jsonify(errno=RET.DATAERR, errmsg="验证码不正确!")

    # if not re.match(r"(\d{6,13})|(\w{6,13})",password):
    #     return jsonify(errno=RET.DATAERR,errmsg="密码过于简单!")
    try:
        user = models.User.query.filter(models.User.mobile==mobile).first()
        # print (user)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR,errmsg="数据库查询数据错误!")
    if user:
        return jsonify(errno=RET.DATAEXIST,errmsg="账号已存在!")
    try:
        add_user = models.User()
        add_user.nick_name = mobile
        add_user.password = password
        add_user.mobile = mobile
        db.session.add(add_user)
        # db.session.commit()  设置了自动提交
        return jsonify(errno=RET.OK,errmsg="账号注册成功!")
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR,errmsg="数据库查询数据错误!")
Exemple #3
0
def create_superuser(username,password):

    user = models.User()
    user.nick_name = username
    user.mobile = username
    user.password = password
    user.is_admin = True
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        curren_app.logger.error(e)
        return "创建失败!"
Exemple #4
0
def createsuperuser(name, password):
    try:
        if models.User.query.filter_by(mobile=name).count() > 0:
            print('用户名已经存在')
            return
    except:
        print('数据库连接失败')
        return

    user = models.User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True  # 管理员
    db.session.add(user)
    try:
        db.session.commit()
        print('管理员创建成功')
    except:
        print('连接数据库失败')
Exemple #5
0
def createsuperuser(user_name, password):
    """
    创建管理员账户
    :param user_name: 用户名
    :param password: 密码
    :return:
    """
    if not all([user_name, password]):
        print('缺少参数:-n "用户名" -p "密码"')

    # 初始化用户对象
    user = models.User()
    user.mobile = user_name
    user.nick_name = user_name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
        print('创建管理员成功')
    except Exception as e:
        db.session.rollback()
        raise e