def upload_house_image(house_id): """上传房屋图片""" try: image = request.files.get('house_image').read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=u'获取图片文件异常') try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg=u'房屋查询异常') if not house: return jsonify(errno=RET.PARAMERR, errmsg=u'房屋不存在') # 图片上传七牛云,记录key try: image_key = storage(image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg=u'图片上传失败') house_image = HouseImage() house_image.url = image_key house_image.house_id = house_id house.index_image_url = image_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=u'数据库保存失败') return jsonify(errno=RET.OK, errmsg='OK', data={'url': config.QINIU_DOMIN_PREFIX + image_key})
def newhouse_images(): images = request.files.get('house_image') house_id = request.form.get('house_id') # 保存成功 url = os.path.join(UPLOAD_DIRS, images.filename) images.save(url) image_url = os.path.join(os.path.join('\static', 'upload'), images.filename) house_image = HouseImage() house_image.house_id = house_id house_image.url = image_url try: house_image.add_update() except: return jsonify(status_code.DATABASE_ERROR) house = House.query.get(house_id) if not house.index_image_url: house.index_image_url = image_url try: house.add_update() except: return jsonify(status_code.DATABASE_ERROR) return jsonify(code=status_code.OK, image_url=image_url)
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})
def save_house_image(): """ 上传房屋的图片: 1. 接收房屋的id 和 房屋图片文件 并进行参数校验 2. 上传房屋的图片到七牛云 3. 创建HouseImage对象并保存房屋图片信息 4. 添加房屋图片信息到数据库 5. 返回应答 """ # 1. 接收房屋的id 和 房屋图片文件 并进行参数校验 house_id = request.form.get('house_id') if not house_id: return jsonify(errno=RET.PARAMERR, errmsg='缺少参数') file = request.files.get('house_image') if not file: 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='房屋不存在') # 2. 上传房屋的图片到七牛云 try: key = image_storage(file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='上传房屋图片失败') # 3. 创建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 # 4. 添加房屋图片信息到数据库 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='OK', data={'img_url': img_url})
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})
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})
def upload_house_image(): """ 用户是否登录 获取参数并且校验 查询房屋,只有房子存在时才上传 调用七牛云工具上传 把图片信息保存到house_image模型类中 响应 :return: """ # 1.获取参数校验 house_image = request.files.get('house_image') if not house_image: return jsonify(reeno=RET.PARAMERR, errmsg='获取图片失败') # 2.查询房屋信息,前端是form提交 house_id = request.form.get('house_id') try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(reeno=RET.DBERR, errmsg='查询出错') if not house: return jsonify(reeno=RET.NODATA, errmsg='房子不存在') # 3.调用工具上传 try: key = upload_image(house_image) except Exception as e: current_app.logger.error(e) return jsonify(reeno=RET.PARAMERR, errmsg='上传失败') # 创建House_image对象,添加属性 image = HouseImage() image.house_id = house_id image.url = key # 给房子添加默认的图片 if not house.index_image_url: house.index_image_url = key # 更新数据库 try: db.session.add(image) db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(reeno=RET.DBERR, errmsg='图片保存失败') # 拼接图片的链接 house_image_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(reeno=RET.OK, errmsg='上传成功', data=house_image_url)
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})
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})
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('image_data') 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.PARAMERR, 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 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})
def upload_house_image(): """上传房屋图片""" # 1,接受参数 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.PARAMERR, 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) 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})
def save_house_image(): # 获取房屋id house_id = request.form['house_id'] if not house_id: return jsonify(errno=RET.PARAMERR, errmsg='参数错误') # 获取房屋图片 try: image = request.files.get('house_image').read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg='参数错误') # 上传图片 try: url = storage_image(image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='上传图片错误') # 查询房屋信息 try: house = House.query.get(int(house_id)) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='数据查询错误') if not house: return jsonify(errno=RET.DATAERR, errmsg='房屋信息不存在') if house.index_image_url == '': house.index_image_url = url house_image = HouseImage() house_image.house_id = house_id house_image.url = url 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='数据保存失败') return jsonify(errno=RET.OK, errmsg='ok', data={"url": QINIU_DOMIN_PREFIX + url})
def save_house_image(): house_id = request.form.get('house_id') if not house_id: return jsonify(errno=RET.PARAMERR, errmsg='缺少参数') file = request.files.get('house_image') if not file: 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='房屋不存在') try: key = image_storage(file.read()) 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: db.session.callback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='保存房屋图片失败') image_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(errno=RET.OK, errmsg='OK', data={'img_url': image_url})
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})