Esempio n. 1
0
def upload_avatar():
    try:
        image_data = request.files.get('avatar')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DATAERR, errmsg="图片获取失败")

    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败")

    user_id = session.get('user_id')
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="查询用户失败")

    if not user:
        return jsonify(errno=RET.NODATA, errmsg='用户不存在')

    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg="储存用户头像失败")

    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg="上传头像成功", data=avatar_url)
Esempio n. 2
0
def upload_house_imaeg():
    """发布房屋图片
    0.判断用户是否是登录 @login_required
    1.接受参数:image_data, house_id, 并做校验
    2.使用house_id查询house模型对象数据,因为如果查询不出来,就不需要上传图片了
    3.调用上传图片的工具方法,发布房屋图片
    4.将图片的七牛云的key,存储到数据库
    5.响应结果:上传的房屋图片,需要立即刷新出来
    """

    # 1.接受参数:image_data, house_id, 并做校验
    try:
        image_data = request.files.get('house_image')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='无法收到房屋图片')

    house_id = request.form.get('house_id')
    if not house_id:
        return jsonify(errno=RET.PARAMERR, errmsg='缺少必传参数')

    # 2.使用house_id查询house模型对象数据,因为如果查询不出来,就不需要上传图片了
    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询房屋数据失败')
    if not house:
        return jsonify(errno=RET.NODATA, errmsg='房屋不存在')

    # 3.调用上传图片的工具方法,发布房屋图片
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传房屋图片失败')

    # 4.将图片的七牛云的key,存储到数据库
    house_image = HouseImage()
    house_image.house_id = house_id
    house_image.url = key

    # 选择一个图片,作为房屋的默认图片
    if not house.index_image_url:
        house.index_image_url = key

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='存储房屋图片失败')

    # 5.响应结果:上传的房屋图片,需要立即刷新出来
    image_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK,
                   errmsg='发布房屋图片成功',
                   data={'image_url': image_url})
Esempio n. 3
0
def upload_house_image():
    """上传房屋图片
    0.判断是否登录
    1.接受参数,image_data,house_id
    2.使用house_id,查询房屋信息,只有当房屋存在时,才会上传图片
    3.调用上传图片的工具,上传房屋的图片
    4.创建HouseImage模型对象,并保存房屋图片key,保存到数据库
    5.响应结果
    """
    # 1.接受参数,image_data,house_id
    try:
        image_data = request.files.get('house_image')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg="图⽚有误")
    house_id = request.form.get('house_id')
    if not house_id:
        return jsonify(errno=RET.PARAMERR, errmsg="缺少必传参数")
    # 获取房屋模型对象
    # 2.使用house_id,查询房屋信息,只有当房屋存在时,才会上传图片
    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询房屋数据失败')
    if not house:
        return jsonify(errno=RET.NODATA, errmsg='房屋不存在')

    # 3.调用上传图片的工具,上传房屋的图片
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传图⽚失败')

    # 4.创建HouseImage模型对象,并保存房屋图片key,保存到数据库
    house_image = HouseImage()
    house_image.house_id = house_id
    house_image.url = key

    # 给房屋设置默认的图片
    if not house.index_image_url:
        house.index_image_url = key

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='保存房屋图⽚数据失败')

    # 5.响应结果
    house_image_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK,
                   errmsg='上传房屋图⽚成功',
                   data={'house_image_url': house_image_url})
Esempio n. 4
0
File: house.py Progetto: xmstu/iHome
def upload_house_image():
    """上传房屋图片
    1.接受参数:image_data, house_id, 并校验
    2.使用house_id, 查询房屋信息,只有当房屋存在时,才会上传图片
    3.调用上传图片的工具方法,上传房屋图片
    4.创建HouseImage模型对象,并保存房屋图片key,并保存到数据库
    5.响应结果
    """

    # 1.接受参数:image_data, house_id, 并校验
    try:
        image_data = request.files.get('house_image')
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='获取图片失败')
    house_id = request.form.get('house_id')
    if not house_id:
        return jsonify(errno=RET.PARAMERR, errmsg='缺少必传参数')

    # 2.使用house_id, 查询房屋信息,只有当房屋存在时,才会上传图片
    try:
        house = House.query.get(house_id)
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询数据失败')

    # 3.调用上传图片的工具方法,上传房屋图片
    try:
        key = upload_image(image_data)
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传图片失败')

    # 4.创建HouseImage模型对象,并保存房屋图片key,并保存到数据库
    house_image = HouseImage()
    house_image.house_id = house_id
    house_image.url = key

    # 给房屋设置默认的图片
    if not house.index_image_url:
        house.index_image_url = key

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='保存图片失败')

    # 5.响应结果
    house_image_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='上传图片成功', data={'house_image_url': house_image_url})
Esempio n. 5
0
def set_house_image():
    # 0.判断用用户是否登录
    # 1.接受参数:房屋图片,house_id,并校验参数

    try:
        image_data = request.files.get('house_image')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.PARAMERR, error_msg=u'图片有误')

    try:
        house_id = request.form.get('house_id')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.PARAMERR, error_msg=u'缺少必传参数')

    # 2.获取房屋模型对象

    try:

        house = House.query.filter(House.id == house_id).first()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.DBERR, error_msg=u'查询房屋数据失败')

    if not house:
        return jsonify(error_no=RET.NODATA, error_msg=u'房屋不存在!')
    # 3.上传房屋图片片
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.THIRDERR, error_msg=u'上传房屋图片失败')
    # 4.创建house_image模型对象,存储房屋图片片数据到数据库
    house_image = HouseImage()
    house_image.house_id = house_id
    house_image.url = key
    # 设置房屋默认图片
    if not house.index_image_url:
        house.index_image_url = key

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.DBERR, error_msg=u'提交数据失败')
# 5.响应结果
    house_image_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(error_no=RET.OK,
                   error_msg='上传房屋图片片成功',
                   data={'house_image_url': house_image_url})
Esempio n. 6
0
def upload_avatar():
    """上传用户头像
    0.todo 判断用户是否登录
    1.获取用户上传的头像数据,并校验
    2.查询当前的登录用户
    3.将用户头像赋值给当前的登录用户的user模型
    4.响应个人信息的结果
    :return:
    """

    #     0.todo 判断用户是否登录

    #     1.获取用户上传的头像数据,并校验
    try:
        avatar_data = request.files.get('avatar')
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='获取用户头像失败')

    #     2.查询当前的登录用户
    user_id = g.user_id
    try:
        user = User.query.get(user_id)
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询用户数据失败')
    if not user:
        return jsonify(errno=RET.PARAMERR, errmsg='用户不存在')

    try:
        key = upload_image(avatar_data)
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败')

    #     4.将用户头像赋值给当前的登录用户的user模型
    user.avatar_url = key

    #     5.响应个人信息的结果
    try:
        db.session.commit()
    except Exception as e:
        logging.error(e)
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='保存用户头像失败')

    #   6.响应上传头像的结果
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='上传用户头像成功', data=avatar_url)
Esempio n. 7
0
def upload_avatar():
    """提供用户头像上传
    0. TODO 先判断用户是否登录
    1.接受请求参数:avatar对应的图片数据,并校验
    2.调用上传图片的工具方法
    3.存储图片的key到user.avatar_url属性中
    4.响应上传结果,在结果中传入avatar_url,方便用户上传完成后立即刷新头像
    """

    # 1.接受请求参数:avatar对应的图片数据,并校验
    try:
        image_data = request.files.get('avatar')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='头像参数错误')

    # 2.调用上传图片的工具方法
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传头像失败')

    # 3.存储图片的key到user.avatar_url属性中
    # 获取登录用户的user_id
    # user_id = session.get('user_id')
    user_id = g.user_id

    # 查询登录用户对象
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询用户数据失败')
    if not user:
        return jsonify(errno=RET.NODATA, errmsg='用户不存在')
    # 给登录用户模型属性赋新值
    user.avatar_url = key
    # 将新值保存的数据库
    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='存储用户头像地址失败')

    # 4.响应上传结果,在结果中传入avatar_url,方便用户上传完成后立即刷新头像
    # 拼接访问头像的全路径
    # http://oyucyko3w.bkt.clouddn.com/FtEAyyPRhUT8SU3f5DNPeejBjMV5
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='上传头像成功', data=avatar_url)
Esempio n. 8
0
def upload_avatar():
    """
    上传用户头像
    0. 判断用户是否登录
    1. 获取到上传的图片文件
    2. 判断图片文件是否存在
    3. 上传图片文件到七牛云
    4. 上传成功之后,保存到用户表的头像字段中
    5. 返回响应,带上头像地址
    :return:
    """

    # 1. 获取到上传的图片文件 / 2. 判断图片文件是否存在
    try:
        avatar_data = request.files.get("avatar").read()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DATAERR, errmsg="请取文件失败")

    # 3. 上传图片文件到七牛云
    try:
        key = upload_image(avatar_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败")

    # 4. 上传成功之后,保存到用户表的头像字段中
    # user_id = session.get("user_id")
    user_id = g.user_id
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="查询数据失败")

    if not user:
        return jsonify(errno=RET.NODATA, errmsg="用户不存在")

    # 设置值到用户模型身上数据
    user.avatar_url = key

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

    # 5. 返回响应,带上头像地址
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg="上传成功", data={"avatar_url": avatar_url})
Esempio n. 9
0
def upload_avatar():
    """
    上传用户头像
    0.TODO 判断用户是否登录
    1.获取用户上传的头像数据,并校验
    2.查询当前的登录用户
    3.调用上传工具方法实现用户头像的上传
    4.将用户头像赋值给当前的登录用户的user模型
    5.将数据保存到数据库
    6.响应上传用户头像的结果
    """
    # 2.查询当前的登录用户
    # 下面方式取不到数据会报错,选用get取得数据
    # user_id = session["user_id"]
    user_id = g.user_id

    # 1. 获取用户上传的头像数据,并校验
    try:
        avatar_data = request.files.get("avatar")
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='获取用户头像失败')


    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询用户数据失败')
    if not user:
        return jsonify(errno=RET.NODATA, errmsg="用户不存在")

    # 3.调用上传工具方法实现用户头像的上传
    try:
        key = upload_image(avatar_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败')

    # 4.将用户头像赋值给当前的登录用户的user模型
    user.avatar_url = key
    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='保存用户头像失败')

    # 6.响应上传用户头像的结果
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg="OK", data=avatar_url)
Esempio n. 10
0
def upload_house_image():
    """图片上传,会根据是什么房屋的图片--要房屋house_id
    如果都无误则返结果回去"""
    try:
        image_data = request.files.get('house_image')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='图片有误')
    house_id = request.form.get('house_id')
    if not house_id:
        return jsonify(errno=RET.PARAMERR, errmsg='缺少拿必传参数')
    #记住要先有房子才有上传图片,有了房子后保存房屋id到mysql数据库
    #在拿到房屋id后,再到自己的数据库中用这个id去查找,看是否有对应的房屋
    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询房屋数据失败')
    if not house:
        return jsonify(errno=RET.NODATA, errmsg='房屋不存在')

    #若查到有此id对应的房屋,则可以上传图片
    try:  #上传图片到七牛云   怎么由七牛云拿到浏览器渲染? 在前端代码写上下载图片的地址
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传图片失败')
    #上传了图片之后记得到把这些数据记录下来,以便后面操作

    house_image = HouseImage()  #创建对象,作用用于调用方法
    house_image.house_id = house_id
    house_image.url = key  #这里是表示什么,怎么实现?

    # 设置房屋默认的图片
    if not house.index_image_url:
        house.index_image_url = key

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='保存房屋图片数据失败')

    house_image_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK,
                   errmsg='上传图片成功',
                   data={'house_image_url': house_image_url})
Esempio n. 11
0
def upload_avatar():
    """
    0.判断用户是否登陆
    1.获取到上传的图片文件
    2.判断文件是否存在
    3.将文件上传到七牛云
    4.上传成功之后,将图片保存到用户表头像字段
    5.返回响应
    :return:
    """
    # 1.获取到上传的图片文件/2.判断文件是否存在
    try:
        avatar_data = request.files.get('avatar').read()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DATAERR, errmsg='读取文件失败')

    # 3.上传文件图片到七牛云
    try:
        key = upload_image(avatar_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='图片上传失败')

    # 4.上传成功之后,将图片保存到用户表头像字段
    user_id = g.user_id
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询数据失败')

    if not user:
        return jsonify(errno=RET.NODATA, errmsg='用户不存在')

    # 设置值到user的字段上
    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='保存数据失败')

    # 5.返回响应
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='OK',data={'avatar_url':avatar_url})
Esempio n. 12
0
def upload_avatar():
    """上传用户头像
    0.TODO 判断用户是否登录
    1.获取用户上传的头像数据
    2.调用上传图片的方法,上传头像到七牛云
    3.上传如果成功,储存图片唯一标识到数据库
    4.如果上传成功响应结果
    """

    # 1.获取用户上传的头像数据
    try:
        # 用files取文件的内容取不到会报错,
        image_data = request.files.get('avatar')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DATAERR, errmsg="图像获取失败")

    # 2.调用上传图片的方法,上传头像到七牛云
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图像失败")

    # 3.上传如果成功,储存图片唯一标识到数据库
    # 用户头像要和用户绑定,所有要查出是谁在上传头像
    user_id = session.get('user_id')
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="查询用户失败")
    # 储存key到avatar_url
    user.avatar_url = key
    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg="存储⽤户头像失败")

    # 4.如果上传成功响应结果
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg="上传头像成功", data=avatar_url)
Esempio n. 13
0
def upload_avatar():
    """提供用户头像上传
    0. TODO 先判断用户是否登录
    1. 获取图片数据
    2. 调用上传工具进行图片上传
    3. 获取返回的值,存储到数据库中并拼接出图片路由
    4. 响应上传结果
    """
    try:
        image_data = request.files.get('avatar')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg='头像参数错误')
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传头像失败')

    # user_id = session.get('user_id')
    user_id = g.user_id
    try:
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询用户数据失败')

    if not user:
        return jsonify(errno=RET.NODATA, errmsg='用户不存在')

    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='存储用户头像地址失败')

    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    print(avatar_url)
    return jsonify(errno=RET.OK, errmsg='上传头像成功', data=avatar_url)
Esempio n. 14
0
def upload_avatar():
    """上传图片到七牛云"""

    # 0.TODO 判断当前用户是否登录

    # 1.获取用用户上传的头像数据
    user_id = session['user_id']
    try:
        image_data = request.files.get('avatar')
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.PARAMERR, error_msg=u'获取文件数据失败')
    # 2.调用用上传图片片的方方法,上传头像到七牛牛云
    try:
        key = upload_image(image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.DATAERR, error_msg=u'上传图片错误!')
    # 3.如果上传成功,存储图片片唯一一标识到数据库
    try:
        user = User.query.filter(User.id == user_id).first()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.DBERR, error_msg=u'查询用户失败')

    if not user:
        return jsonify(error_no=RET.NODATA, error_msg=u'用户不存在!')
    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error_no=RET.DBERR, error_msg=u'图片提交数据库失败')

    # 4.如果上传成功响应结果
    response_data = user.to_dict()

    return jsonify(error_no=RET.OK, error_msg=u'图片上传成功!', data=response_data)
Esempio n. 15
0
def upload_house_image():
    """
    1. 取到参数,图片,房屋的id
    2. 获取到指定id的房屋模型
    3. 上传图片到七牛云
    4. 初始化房屋图片的模型
    5. 设置数据并且保存到数据库
    6. 返回响应-->图片的url
    :return:
    """

    # 1. 取到参数,图片,房屋的id
    try:
        house_image = request.files.get("house_image").read()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg="参数错误")

    # 取到房屋id
    house_id = request.form.get("house_id")

    if not house_id:
        return jsonify(errno=RET.PARAMERR, errmsg="参数错误")

    # 2. 获取到指定id的房屋模型
    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="查询房屋数据失败")

    if not house:
        return jsonify(errno=RET.NODATA, errmsg="当前房屋不存在")

    # 3. 上传图片到七牛云
    try:
        key = image_storage.upload_image(house_image)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败")

    # 判断当前房屋是否设置了index_image,如果没有设置就设置
    if not house.index_image_url:
        house.index_image_url = key

    # 4. 初始化房屋图片的模型
    house_image_model = HouseImage()

    # 5. 设置数据并且保存到数据库
    house_image_model.house_id = house_id
    house_image_model.url = key

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

    # 6. 返回响应-->图片的url
    return jsonify(errno=RET.OK,
                   errmsg="上传成功",
                   data={"image_url": constants.QINIU_DOMIN_PREFIX + key})