项目简要分析3
获取个人信息的接口(用户名,手机号码和头像)
就是查询uer表,把里面所有的数据都返回给前端
接口文档
url: /users 请求方式: get 返回参数: user.to_dic() # 把uer表转换成字典的数据都返回
业务逻辑如下:
从g变量中获取用户的user.id
user_id = g.user_id
根据user.id查询数据库
user = User.query.get(user_id)
如果用户存在的话,把user表对象装换成字典返回给前端,让他去找自己需要的数据
return jsonify(errno=RET.OK, errmsg="OK", data=user.to_dict())
设置用户头像接口
接口文档
url /users/avatar 请求的方式 : post 返回的格式 { data_url:“图片保存在七牛云上的地址” code:200 # 表示修改成功 }
业务逻辑如下:
从g变量中获取用户的user.id
user_id = g.user_id
获取用户上传头像的内容和对其进行校验,在这里是以表单的形式提交
image_file = request.files.get('avatar') if image_file is None: return jsonify(errno=RET.PARAMERR, errmsg='未上传图像')
读取图片的二进制数据
image_data = image_file.read()
把图片保存到七牛云,成功的会返回一个url路径(file_name)
file_name = storage(image_data)
把七牛云上的url保存到数据库中
User.query.filter_by(id=user_id).update({"avatar_url": file_name})
db.session.commit()
拼接完整的头像url路径返回给前端
avatar_url = constants.QINIU_URL_DOMAIN + file_name return jsonify(errno=RET.OK, errmsg='保存图像成功', data={"avatar_url": avatar_url})
修改用户名接口
接口文档
请求地址 users/name 请求方式 : PUT 返回内容的格式 { code :200 ''name'' :"name" }
业务逻辑如下:
从g变量中获取user.id
user_id = g.user_id
接受用户传来的用户名
req_data = request.get_json() if not req_data: return jsonify(errno=RET.PARAMERR, errmsg="参数不完整") name = req_data.get("name") # 用户想要设置的名字 if not name: return jsonify(errno=RET.PARAMERR, errmsg="名字不能为空")
保存用户昵称name,并同时判断name是否重复(利用数据库的唯一索引),因为用户名在用户表中的设置是唯一的
try: User.query.filter_by(id=user_id).update({"name": name}) db.session.commit() except Exception as e: logging.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="设置用户错误")
修改保存在session中的name字段
session["user_name"] = name return jsonify(errno=RET.OK, errmsg="OK", data={"name": name})
获取用户实名认证的信息接口
接口文档
url /users/auth 请求方式 get 返回的格式 { code : 200 data : user.to_dic() # 把uer表转换成字典返回 }
业务逻辑如下:
从g变量中获取用户uer.id
根据user.id查询user表,对其进行校验,返回整表数据给前端
获取user.id
user_id = g.user_id
查询用户的数据
user = User.query.get(user_id)
对其进行校验
if user is None: return jsonify(errno=RET.NODATA, errmsg="无效操作")
如果有数据的话,转成字典返回给前端
return jsonify(errno=RET.OK, errmsg="OK", data=user.auth_to_dict())
保存实名认证信息接口
接口文档
请求地址: users/auth 请求方式: post 返回格式: { errno=RET.OK, errmsg="OK" }
业务逻辑如下:
从g变量中获取用户的user.id
获取用户传过来的实名认证的信息
对传的实名认证信息,进行校验(判空)
保存实名认证信息
获取用户的user.id
user_id = g.user_id
接受前端传得参数
req_data = request.get_json() if not req_data: return jsonify(errno=RET.PARAMERR, errmsg="参数错误") real_name = req_data.get("real_name") # 真实姓名 id_card = req_data.get("id_card") # 身份证号 # 参数校验 if not all([real_name, id_card]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误")
保存用户的姓名和身份证号到数据库中
User.query.filter_by(id=user_id, real_name=None, id_card=None).update({"real_name": real_name, "id_card": id_card}) db.session.commit()
返回结果
{ errno=RET.OK, errmsg="OK" }

浙公网安备 33010602011771号