返回顶部

项目简要分析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"
}

 

posted @ 2018-05-04 11:57  Crazymagic  阅读(154)  评论(0)    收藏  举报