def save_house_image(house_id): """ 上传房屋图片 1/获取参数,image_data = request.files属性 2/判断获取结果 3/根据house_id查询数据库,House模型类, 4/判断查询结果,确认房屋的存在 5/读取图片数据 6/调用七牛云接口,上传图片 7/保存图片名称 8/构造HouseImage模型类对象,准备存储房屋图片数据 house_image = HouseImage() house_image.house_id = house.id house_image.url = image_name db.session.add(house_image) 9/判断房屋默认图片是否设置,如未设置,默认添加当前图片为主图片; 10/保存房屋对象数据,db.session.add(house) 11/提交数据到数据库中 db.session.commit() 12/拼接图片的绝对路径 13/返回结果 :param house_id: :return: """ # 获取图片文件 house_image = request.files.get("house_image") # 检验参数的存在 if not house_image: return jsonify(errno=RET.PARAMERR, errmsg="未上传房屋图片") # 连接数据库,判断房屋的存在 try: house = House.query.filter_by(id=house_id).first() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询房屋数据失败") # 判断查询结果 if not house: return jsonify(errno=RET.NODATA, errmsg="房屋不存在") # 读取图片数据 house_image_data = house_image.read() # 调用七牛云接口,上传房屋图片 try: image_name = storage(house_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 = image_name # 添加数据到数据库会话对象 db.session.add(house_image) # 判断房屋朱图片是否设置,如未设置,添加当前图片为主图片 if not house.index_image_url: house.index_image_url = image_name db.session.add(house) # 提交数据到mysql数据库 try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="保存房屋图片数据失败") # 拼接图片的绝对路径 image_url = constants.QINIU_DOMIN_PREFIX + image_name # 返回数据 return jsonify(errno=RET.OK, errmsg="OK", data={"url": image_url})
def save_house_image(house_id): """ 保存房屋图片 1/获取参数,request.files.get('house_image') 2/校验图片参数存在 3/根据house_id查询数据库,确认房屋的存在 4/校验查询结果 5/读取图片数据 6/调用七牛云接口,上传房屋图片 7/构造模型类对象, house_image = HouseImage() db.session.add(house_image) 8/判断房屋主图片是否设置,如未设置,默认添加用户上传的第一张房屋图片为主图片 if not house.index_image_url: house.index_image_url = image_name db.session.add(house) 9/提交数据到数据库中 10/拼接图片路径,七牛云的外链域名和图片名称 11/返回结果 :param house_id: :return: """ # 获取图片参数 image = request.files.get('house_image') # 校验参数的存在 if not image: return jsonify(errno=RET.PARAMERR, errmsg='图片未上传') # 根据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='无房屋数据') # 读取图片数据 image_data = image.read() # 调用七牛云接口,上传房屋图片 try: image_name = storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='上传房屋图片失败') # 构造HouseImage模型类对象,保存房屋图片 house_image = HouseImage() house_image.house_id = house_id house_image.url = image_name # 把房屋图片数据存入数据库会话对象中 db.session.add(house_image) # 判断房屋主图片是否设置 if not house.index_image_url: house.index_image_url = image_name # 把房屋图片数据存入数据库会话对象中 db.session.add(house) # 提交数据到数据库中 try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg='保存房屋图片失败') # 拼接图片绝对路径 image_url = constants.QINIU_DOMIN_PREFIX + image_name # 返回结果 return jsonify(errno=RET.OK, errmsg='OK', data={'url': image_url})
def upload_house_images(house_id): """ 1.获取参数 2.验证 3.通过house_id查询房屋对象 4.通过七牛云上传图片获取返回的url 5.设置房屋的默认图像图像 6.创建房屋图片对象 7.设置图片对象的房屋编号 8.更新数据库 9.返回,携带图片的url :param house_id: :return: """ # 1.获取参数 image_data = request.files.get("house_image").read() # 2.验证 if not image_data: return jsonify(errno=RET.PARAMERR, errmsg="请选择图片") # 3.通过house_id查询房屋对象 try: house = House.query.filter(House.id == house_id).first() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询房屋失败") if not house: return jsonify(errno=RET.DATAERR, errmsg="该房屋不存在") # 4.通过七牛云上传图片获取返回的url try: image_url = image_storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errnp=RET.THIRDERR, errmsg="七牛云上传图片失败") # 5.设置房屋的默认图像图像 if not house.index_image_url: house.index_image_url = image_url # 6.创建房屋图片对象 house_image = HouseImage() house_image.url = image_url # 7.设置图片对象的房屋编号 house_image.house_id = house_id # 8.更新数据库 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="房屋图片保存失败") # 9.返回, 携带图片的url house_image_url = constants.QINIU_DOMIN_PREFIX + image_url return jsonify(errno=RET.OK, errmsg="房屋图片保存失败", data={"url": house_image_url})
def save_house_image(house_id): """ 保存房屋图片: 1/获取参数,图片house_image 2/校验参数的存在 3/根据house_id查询数据库,确认房屋的存在 house = House.query.get(house_id) 4/读取图片数据 5/调用七牛云上传图片,保存返回的图片名称(相对路径) 6/构造模型类对象,HouseImage对象,存储图片关联的房屋,以及图片的名称 7/临时提交数据到HouseImage对象,db.session.add(house_image) 8/判断房屋主图片是否设置,如未设置默认添加当前的图片为房屋主图片 9/临时提交数据到House对象,db.session.add(house) 10/提交数据到数据库中,如果发生异常需要进行回滚 11/拼接图片的绝对路径 12/返回结果 :param house_id: :return: """ # 获取参数,post请求的图片参数 image = request.files.get('house_image') # 检查参数的存在 if not image: 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 not house: return jsonify(errno=RET.NODATA, errmsg='无房屋数据') # 读取图片数据 image_data = image.read() # 调用七牛云接口,实现图片上传 try: image_name = storage(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 = image_name # 临时提交图片数据到数据库会话对象中 db.session.add(house_image) # 判断房屋主图片是否设置,如未设置默认添加当前图片为主图片 if not house.index_image_url: house.index_image_url = image_name # 临时提交图片数据到数据库会话对象中 db.session.add(house) # 提交数据到数据库中 try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg='保存图片失败') # 拼接图片的url image_url = constants.QINIU_DOMIN_PREFIX + image_name # 返回结果 return jsonify(errno=RET.OK, errmsg='OK', data={'url': image_url})
def save_house_image(): """ 保存房屋的图片 参数 图片,房屋的id """ resp = BaseResponse() image_file = request.files.get("house_image") house_id = request.form.get("house_id") if not all([image_file, house_id]): resp.errno = RET.PARAMERR resp.errmsg = "参数错误" return jsonify(resp.dict) # 判断house_id的正确性 try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) resp.errno = RET.DBERR resp.errmsg = "数据库异常" return jsonify(resp.dict) if house is None: resp.errno = RET.NODATA resp.errmsg = "房屋不存在" return jsonify(resp.dict) image_data = image_file.read() # 保存图片到七牛中 try: file_name = storage(image_data) except Exception as e: current_app.logger.error(e) resp.errno = RET.THIRDERR resp.errmsg = "保存图片失败" return jsonify(resp.dict) # print(house_id,file_name) # 保存图片信息到数据库中 house_image = HouseImage(house_id=house_id, url=file_name) db.session.add(house_image) if not house.index_image_url: house.index_image_url = file_name db.session.add(house) try: db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) resp.errno = RET.DBERR resp.errmsg = "保存图片数据异常" return jsonify(resp.dict) image_url = constants.QINIU_URL_DOMAIN + file_name resp.errno = RET.OK resp.errmsg = "OK" resp.data = {"image_url": image_url} return jsonify(resp.dict)
def save_house_image(house_id): """ 上传房屋图片信息 1.获取参数,用户上传的图片数据 2.校验参数的存在 3.根据house_id查询数据库,校验房屋的存在 4.读取图片数据 5.调用七牛云接口上传图片,保存返回的图片名字 6.构造模型类对象HouseImage,存储图片关联的房屋 7.临时提交图片数据到数据库 8.查询用户房屋主图片是否设置 9.如果没有设置,添加当期图片为主图片 10.提交图片数据到数据库中commit 11.拼接图片的url 12.返回结果 :param house_id: :return: """ # 获取用户上传的图片 image = request.files.get('house_image') # 检查参数是否存在 if not image: 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 not house: return jsonify(errno=RET.NODATA, errmsg="无房屋数据") # 读取图片数据 image_data = image.read() # 调用七牛云接口,上传图片 try: image_name = storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="图片上传失败") # 构造模型类HouseImage对象 house_image = HouseImage() house_image.house_id = house_id house_image.url = image_name # 临时提交数据到house_image中 db.session.add(house_image) # 判断房屋主图片是否设置,如未设置,进行设置 if not house.index_image_url: house.index_image_url = image_name # 临时提交数据到会话对象当中 db.session.add(house) # 提交数据到数据库中 try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="保存图片数据失败") # 拼接图片的url(绝对路径) image_url = constants.QINIU_DOMIN_PREFIX + image_name # 返回结果 return jsonify(errno=RET.OK, errmsg="OK", data={'url': image_url})