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='注册成功')
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()