Пример #1
0
def upload_house_image(house_id):
    """
    1. 取到上传的图片
    2. 进行七牛云上传
    3. 将上传返回的图片地址存储
    4. 进行返回
    :return:
    """

    # 1. 取到上传的图片
    try:
        house_image_file = request.files.get("house_image").read()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg="参数不全")

    # 2. 查询房屋是否存在
    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:
        url = storage_image(house_image_file)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败")

    # 4. 初始化房屋的图片模型
    house_image = HouseImage()
    # 设置相关数据
    house_image.house_id = house.id
    house_image.url = url

    # 判断是否有首页图片
    if not house.index_image_url:
        # 保存图片地址
        house.index_image_url = url

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

    return jsonify(errno=RET.OK,
                   errmsg="OK",
                   data={"url": QINIU_DOMIN_PREFIX + url})
Пример #2
0
def save_house_image():
    """
    保存上传的房屋图片
    1.接收房屋id和房屋文件对象
    2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在)
    3.讲房屋图片上传到七牛云
    4.创建HouseImage对象并保存房屋图片记录
    5.放回应答
    :return:
    """
    # 1.接收房屋id和房屋文件对象
    house_id = request.form.get('house_id')
    image_file = request.files.get('house_image')

    if not all([house_id, image_file]):
        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 = storage_image(image_file.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='上传房屋图片失败')

    # 4.创建HouseImage对象并保存房屋图片记录
    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:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='保存房屋图片记录失败')

    # 5.放回应答
    img_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK,
                   errmsg='上传房屋图片记录成功',
                   data={'img_url': img_url})
Пример #3
0
def save_house_image():
    """
    保存上传房屋图片:
    1.接收房屋id和房屋图片文件对象
    2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在)
    3.将房屋的图片上传到七牛云
    4.创建HouseImage对象并保存房屋图片记录
    5.返回应答,上传成功
    """
    # 1.接收房屋id和房屋图片文件对象
    house_id = request.form.get("house_id")
    file = request.files.get("house_image")

    if not all([house_id, file]):
        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 = storage_image(file.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="上传房屋图片失败")

    # 4.创建HouseImage对象并保存房屋图片记录
    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:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="保存房屋图片记录失败")

    # 5.返回应答,上传成功
    img_url = constants.QINIU_DOMIN_PREFIX + key
    print "img_url:", img_url
    print 'RET.OK:', RET.OK
    return jsonify(errno=RET.OK, errmsg="上传房屋图片成功", data={"img_url": img_url})
Пример #4
0
def set_user_avatar():
    """
    0. 判断用户是否登录
    1. 获取到上传的文件
    2. 再将文件上传到七牛云
    3. 将头像信息更新到当前用户的模型中
    4. 返回上传的结果<avatar_url>
    :return:
    """
    # 0.判断用户是否登录
    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='查询用户信息异常')

    # 1.获取到上传的文件
    avatar = request.files.get('avatar')

    # 1.1 参数判断
    if not avatar:
        return jsonify(errno=RET.PARAMERR, errmsg='图片数据为空')

    # 2.再将文件上传到七牛云
    try:
        avatar_name = storage_image(avatar.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='图片上传到七牛云异常')

    # 3.将头像信息更新到当前用户的模型中
    if avatar_name:
        user.avatar_url = avatar_name

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

    # 完整头像地址返回
    full_url = QINIU_DOMIN_PREFIX + avatar_name

    # avatar_url = full_url

    # 4.返回上传的结果 < avatar_url >
    return jsonify(errno=RET.OK,
                   errmsg='上传个人头像成功',
                   data={"avatar_url": full_url})
Пример #5
0
def set_user_avatar():
    """
    设置用户头像信息:
    # 0. 判断用户是否登录
    # 1. 获取用户上传头像文件对象
    # 2. 把头像文件上传到七牛云
    # 3. 设置用户的头像记录
    # 4. 返回应答,上传头像成功
    """
    # 1. 获取用户上传头像文件对象
    file = request.files.get("avatar")

    if not file:
        return jsonify(errno=RET.PARAMERR, errmsg="缺少数据")

    # 2. 把头像文件上传到七牛云
    try:
        key = storage_image(file.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传用户头像失败")

    # 3. 设置用户的头像记录
    # 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.USERERR, errmsg="用户不存在")

    # 设置用户头像地址
    user.avatar_url = key

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

    # 4. 返回应答,上传头像成功
    avatar_url = constants.QINIU_DOMIN_PREFIX + key

    return jsonify(errno=RET.OK,
                   errmsg="上传头像成功",
                   data={"avatar_url": avatar_url})
Пример #6
0
def set_user_avatar():
    """
    0. 判断用户是否登录
    1. 获取到上传的文件
    2. 再将文件上传到七牛云
    3. 将头像信息更新到当前用户的模型中
    4. 返回上传的结果<avatar_url>
    :return:
    """

    # 0. 判断用户是否登录
    user_id = g.user_id

    # 1. 获取到上传的文件
    try:
        avatar_file = request.files.get("avatar").read()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg="参数错误")

    # 2. 再将文件上传到七牛云
    try:
        url = storage_image(avatar_file)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误")

    # 3. 将头像信息更新到当前用户的模型中
    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.USERERR, errmsg="用户不存在")

    # 设置用户模型相关数据
    user.avatar_url = url
    # 将数据保存到数据库
    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>
    return jsonify(errno=RET.OK,
                   errmsg="OK",
                   data={"avatar_url": QINIU_DOMIN_PREFIX + url})
Пример #7
0
def set_user_avatar():
    """
    设置用户头像信息:
    1.获取用户上传头像的文件对象
    2.调用封装的七牛云方法,上传到七牛云
    3.设置用户的头像记录
    4.返回应答
    :return:
    """
    # 1.获取用户上传头像的文件对象
    avatar_file = request.files.get('avatar')

    if not avatar_file:
        return jsonify(errno=RET.PARAMERR, errmsg='缺少数据')

    # 2.调用封装的七牛云方法,上传到七牛云
    try:
        key = storage_image(avatar_file.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败')

    # 3.设置用户的头像记录
    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.USERERR, errmsg='用户不存在')

    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='设置用户头像记录失败')

    # 4.返回应答
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='上传头像成功', data={'avatar_url': avatar_url})
Пример #8
0
def upload_house_image(house_id):
    """
    1. 取到上传的图片
    2. 进行七牛云上传
    3. 将上传返回的图片地址存储
    4. 进行返回
    :return:
    """
    # 获取参数
    house_image = request.files.get('images')
    house_id = house_id
    user = g.ih_user_profile

    if not user:
        return jsonify(errno=RET.SESSIONERR, errmsg="用户未登录")

    # 将图片上传到七牛云
    try:
        image_name = storage_image(house_image.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="上传图片到七牛云异常")
        # 图片名称没有值
    if not image_name:
        return jsonify(errno=RET.DBERR, errmsg="上传图片到七牛云异常")

    image = HouseImage()
    image.url = constants.QINIU_DOMIN_PREFIX + image_name
    image.house_id = house_id

    data = {
        "url": image.url,

    }

    try:
        db.session.add(image)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        # 数据库回滚
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errormsg="保存数据对象异常")

    return jsonify(error=RET.OK, errmsg="上传图片成功", data=data)
Пример #9
0
def upload_house_image(house_id):
    """
    1. 取到上传的图片
    2. 进行七牛云上传
    3. 将上传返回的图片地址存储
    4. 进行返回
    :return:
    """
    house_id = house_id
    images = request.files.get("house_image")

    if not all([house_id, images]):
        return jsonify(errno=RET.PARAMERR, errmsg="参数不足")

    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="查询房间数据异常")

    if house is None:
        return jsonify(errno=RET.NODATA, errmsg="房间不存在")

    images_data = images.read()

    try:
        file_name = storage_image(images_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 = file_name

    try:
        db.session.add(house_image)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg="保存图片异常")

    image_url = constants.QINIU_DOMIN_PREFIX + file_name
    print(image_url)
    return jsonify(errno=RET.OK, errmsg="OK", data={"url": image_url})
Пример #10
0
def set_user_avatar():
    '''
    设置用户头像信息:
    1、获取用户上传头像的对象
    2、头像文件上传到七牛云
    3、设置用户头像记录
    4、返回应答,上传成功
    '''

    # 1、获取用户上传头像的对象
    file = request.files.get('avatar')
    if not file:
        return jsonify(errno=RET.PARAMERR, errmsg='缺少数据')

    # 2、头像文件上传到七牛云
    try:
        key = storage_image(file.read())
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败')
    # 3、设置用户头像记录
    # 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.USERERR, errmsg='用户不存在')
    # 设置用户头像地址
    user.avatar_url = key

    try:
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='设置用户头像记录')

    # 4、返回应答,上传成功
    avatar_url = constants.QINIU_DOMIN_PREFIX + key
    return jsonify(errno=RET.OK, errmsg='上传头像成功', data={'avatar_url': avatar_url})