示例#1
0
    def post(self):
        from utils.qiniu_storage import storage
        try:
            image_data = self.request.files["avatar"]
            if not image_data:
                return self.write(dict(errcode=RET.PARAMERR, errmsg="未上传图片"))

        except Exception as e:
            logging.error(e)
            return self.write("出错了")
        try:
            avatar = image_data[0]["body"]
            key = storage(avatar)
        except Exception as e:
            return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))

        # 从session中取出用户user_id 用来存储用户的图片信息导数据库
        user_id = self.session.data['user_id']
        # 保存图片的url
        sql = "update ih_user_profile set up_avatar=%(avatar)s WHERE up_user_id =$(user_id)s "
        try:
            # execute返回新增id,execute_rouwcount 返回受影响的行数
            row_count = self.db.execute_rowcount(sql, avatar=key, user_id=user_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="存储出错了!!"))
        # 正确情况
        self.write(dict(errcode=RET.OK, errmsg="ok!!"))
示例#2
0
    def post(self):
        try:
            image_data = self.request.files['avatar'][0]['body']
        except Exception as e:
            # 参数出错
            logging.error(e)
            return self.write("")
        try:
            key = storage(image_data)
        except Exception as e:
            logging.error(e)
            return self.write("")

        print key
        # 更新用户头像url到数据库内
        try:
            self.db.execute("update ih_user_profile set up_avatar = %(avatar_url)s where up_user_id = %(up_user_id)s", avatar_url=key, up_user_id=self.session.data.get('up_user_id'))
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DATAERR, errmsg="数据库出错"))

        # 更新session
        self.session.data['up_avatar'] = key
        self.session.save()

        data = config.image_domain+key
        self.write(dict(errcode=RET.OK, data=data))
示例#3
0
    def post(self):
        files = self.request.files.get("avatar")
        if not files:
            return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
        avatar = files[0]["body"]
        # 调用七牛上传图片
        try:
            file_name = storage(avatar)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))

        # 从session数据中取出user_id
        user_id = self.session.data["user_id"]

        # 保存图片名(即图片url)到数据中
        sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
        try:
            row_count = self.db.execute_rowcount(sql,
                                                 avatar=file_name,
                                                 user_id=user_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="保存错误"))
        self.write(
            dict(errcode=RET.OK,
                 errmsg="保存成功",
                 data="%s" % (constants.QINIU_URL_PREFIX + file_name)))
示例#4
0
 def post(self):
     user_id = self.session.data["user_id"]
     house_id = self.get_argument("house_id")
     house_image = self.request.files["house_image"][0]["body"]
     # 调用封装好的七牛storage方法上传图片
     img_name = storage(house_image)
     if not img_name:
         return self.write({
             "errcode": RET.THIRDERR,
             "errmsg": "qiuniu error"
         })
     try:
         # 保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url)
         # 我们将用户上传的第一张图片作为房屋的主图片
         sql = "insert into ih_house_image(hi_house_id, hi_url) values(%s, %s); " \
             "update ih_house_info set hi_index_image_url=%s "\
             "where hi_house_id=%s and hi_index_image_url is null;"
         self.db.execute(sql, house_id, img_name, img_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write({
             "errcode": RET.DBERR,
             "errmsg": "upload failed"
         })
     img_url = constant.QINIU_URL_PREFIX + img_name
     self.write(dict(errcode=RET.OK, errmsg="OK", url=img_url))
示例#5
0
 def post(self):
     # 取出用户上传的图片二进制数据
     files = self.request.files.get("avatar")
     # 参数校验
     if not files:
         return self.write(dict(errcode=RET.PARAMERR, errmsg="未上传图片"))
     # 上传到七牛云
     img_data = files[0]["body"]
     try:
         avatar_name = storage(img_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))
     # 更新到数据库
     user_id = self.session.data["user_id"]
     sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s;"
     try:
         self.db.execute_rowcount(sql, avatar=avatar_name, user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg="数据库出错"))
     # 更新缓存
     self.session.data["avatar"] = avatar_name
     try:
         self.session.save()
     except Exception as e:
         logging.error(e)
     # 返回图片链接
     img_url = constants.QINIU_URL_PREFIX + avatar_name
     self.write(dict(errcode=RET.OK, errmsg="上传成功", img_url=img_url))
示例#6
0
 def post(self):
     user_id = self.session.data["user_id"]
     house_id = self.get_argument("house_id")
     house_image = self.request.files["house_image"][0]["body"]  #---------
     # 调用封装好的上传七牛的storage方法上传图片
     img_name = storage(house_image)
     if not img_name:
         return self.write(dict(errcode=RET.THIRDERR, errmsg="qiniu error"))
     try:
         sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);"\
         "update ih_house_info set hi_index_image_url=%s "\
         "where hi_house_id=%s and hi_index_image_url is null;"
         self.db.execute(sql, house_id, img_name, img_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg="upload failed"))
     img_url = constants.QINIU_URL_PREFIX + img_name
     self.write(dict(errcode=RET.OK, errmsg="OK", url=img_url))
示例#7
0
 def post(self):
     user_id = self.session.data["user_id"]
     house_id = self.get_argument("house_id")
     house_image = self.request.files["house_image"][0]["body"]
     # 调用我们封装好的上传七牛的storage方法上传图片
     img_name = storage(house_image)
     if not img_name:
         return self.write({"errcode":RET.THIRDERR, "errmsg":"qiniu error"})
     try:
         # 保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url)
         # 我们将用户上传的第一张图片作为房屋的主图片
         sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);" \
               "update ih_house_info set hi_index_image_url=%s " \
               "where hi_house_id=%s and hi_index_image_url is null;"
         self.db.execute(sql, house_id, img_name, img_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errcode":RET.DBERR, "errmsg":"upload failed"})
     img_url = constants.QINIU_URL_PREFIX + img_name
     self.write({"errcode":RET.OK, "errmsg":"OK", "url":img_url})
示例#8
0
 def post(self):
     try:
         house_id = self.get_argument("house_id")
         house_image = self.request.files["house_image"][0]["body"]
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DATAERR, msg="参数错误"))
     image_url = storage(house_image)
     if not image_url:
         return self.write(dict(errcode=RET.THIRDERR, msg="七牛存储错误"))
     try:
         # 将上传的七牛图片地址存储到数据库里面去,用户的第一张图片作为房屋的封面
         sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);" \
               "update ih_house_info set hi_index_image_url=%s " \
               "where hi_house_id=%s and hi_index_image_url is null;"
         self.db.execute(sql, house_id, image_url, image_url, house_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, msg="数据库错误"))
     image_url = config.qiniu_url + image_url
     self.write(dict(errcode=RET.OK, msg="OK", data=image_url))
示例#9
0
 def post(self):
     files = self.request.files.get('avatar')
     if not files:
         return self.write(dict(errcode=RET.PARAMERR, errmsg='未传图片'))
     file = files[0]['body']
     try:
         # 调用7牛空间保存图片
         file_name = storage(file)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.THIRDERR, errmsg='上传失败'))
     user_id = self.session.data['user_id']
     # sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
     # 保存到数据库
     sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
     try:
         self.db.execute_rowcount(sql, avatar=file_name, user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg='保存错误'))
     avater_url = QINIU_URL_PREFIX + file_name
     self.write(dict(errcode=RET.OK, errmsg="保存成功", data=avater_url))
示例#10
0
    def post(self):
        files = self.request.files.get('avatar')
        if not files:
            return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
        avatar = files[0]['body']
        #调用七牛上传文件
        try:
            file_name = storage(avatar)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.THREDERR, errmsg="上传失败"))

        user_id = self.session.data['user_id']

        sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
        try:
            row_count = self.db.execute_rowcount(sql, avatar=file_name, user_id=user_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="保持错误"))
        
        self.write(dict(errcode=RET.OK, errmsg="OK", data="%s%s" %(constants.QINIU_URL_PREFIX, file_name)))
示例#11
0
 def post(self):
     # 获取参数,房屋id,图片数据
     house_id = self.get_argument("house_id")
     try:
         image_data = self.request.files["house_image"][0]["body"]
     except Exception as e:
         logging.error(e)
         image_data = None
     # 参数校验
     if not all((house_id, image_data)):
         return self.write(
             dict(errcode=RET.PARAMERR, errmsg="missing parameter"))
     # 把图片上传到七牛云
     try:
         image_name = storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(
             dict(errcode=RET.THIRDERR, errmsg="upload image error"))
     # 插入房屋图片表(如果是第一张图片,再更新房屋信息表的房屋默认图片)
     sql = "insert into ih_house_image(hi_house_id, hi_url) values(%s, %s);"
     sql2 = "update ih_house_info set hi_index_image_url=%s " \
            "where hi_house_id=%s and hi_index_image_url is null;"
     try:
         self.db.execute(sql, house_id, image_name)
         self.db.execute(sql2, image_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR,
                                errmsg="insert db error"))
     # 房屋信息更新,清除redis缓存
     try:
         self.redis.delete("house_info_%s" % house_id)
     except Exception as e:
         logging.error(e)
     # 成功,返回结果
     image_url = constants.QINIU_URL_PREFIX + image_name
     self.write(dict(errcode=RET.OK, errmsg="OK", url=image_url))
示例#12
0
    def post(self):
        files = self.request.files.get("avatar")
        if not files:
            return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
        avatar = files[0]["body"]
        # 调用七牛上传图片
        try:
            file_name = storage(avatar)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))

        # 从session数据中取出user_id
        user_id = self.session.data["user_id"]

        # 保存图片名(即图片url)到数据中
        sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
        try:
            row_count = self.db.execute_rowcount(sql, avatar=file_name, user_id=user_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="保存错误"))
        self.write(dict(errcode=RET.OK, errmsg="保存成功", data="%s%s" % (constants.QINIU_URL_PREFIX, file_name)))
示例#13
0
    def post(self):
        user_id = self.session.data['user_id']
        house_id = self.get_argument('house_id')
        house_image = self.request.files['house_image'][0]['body']

        # 上传七牛图片
        img_name = storage(house_image)
        if not img_name:
            return self.write(dict(errcode=RET.THIRDERR, errmsg="qiniu error"))
        try:
            # 保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url
            # 将用户上传的第一张图片作为房屋的主图片
            sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);" \
                    "update ih_house_info set hi_index_image_url=%s \
                    where hi_house_id=%s and hi_index_image_url is null;"

            logging.info(sql)
            self.db.execute(sql, house_id, img_name, img_name, house_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="upload failed"))
        img_url = constants.QINIU_URL_PERFIX + img_name
        self.write(dict(errcode=RET.OK, errmsg="OK", url=img_url))
示例#14
0
 def post(self):
     try:
         image_data = self.request.files.get('avatar', '')
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
     try:
         file_name = storage(image_data[0]["body"])
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))
     try:
         user = Tenant.by_mobile(self.current_user.phone_number)
         user.user_avatar = file_name
         self.db.add(user)
         self.db.commit()
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg="保存错误"))
     self.write(
         dict(errcode=RET.OK,
              errmsg="保存成功",
              data="%s%s" % (constants.QINIU_URL_PREFIX, file_name)))
示例#15
0
    def post(self):
        user_id = self.session.data["user_id"]
        house_id = self.get_argument("house_id")
        house_image = self.request.files["house_image"][0]["body"]
        img_name = storage(house_image)

        if not img_name:
            return self.write({
                "errcode": RET.THIRDERR,
                "errmsg": "qiniu error"
            })
        try:
            sql = "insert into ih_house_image(hi_house_id, hi_url) values(%s, %s);"\
                "update ih_house_info set hi_index_image_url = %s"\
                "where hi_house_id = %s and hi_index_image_url is null;"
            self.db.execute(sql, house_id, img_name, img_name, house_id)
        except Exception as e:
            logging.error(e)
            return self.write({
                "errcode": RET.PARAMERR,
                "errmsg": "upload failed"
            })
        img_url = constants.QINIU_URL_PREFIX + img_name
        self.write({"errcode": RET.OK, "errmsg": "OK", "url": img_url})
示例#16
0
 def post(self):
     file = self.request.files
     img_files = file.get('avatar')
     if not img_files:
         return self.write(dict(errcode=RET.PARAMERR, errmsg='未传图片'))
     img_file = img_files[0]['body']
     try:
         key = storage(img_file)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcod=RET.THIRDERR, errmsg='上传失败'))
     user_id = self.session.data['user_id']
     sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
     try:
         row_count = self.db.execute_rowcount(sql,
                                              avatar=key,
                                              user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcod=RET.DBERR, errmsg='保存错误'))
     self.write(
         dict(errcode=RET.OK,
              errmsg="保存成功",
              data="%s%s" % (constants.QINIU_URL_PREFIX, key)))
示例#17
0
 def post(self):
     user_id = self.session.data["user_id"]
     try:
         image = self.request.files["avatar"][0]["body"]
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.PARAMERR, msg="参数错误"))
     try:
         image_name = storage(image)
     except Exception as e:
         logging.error(e)
         image_name = None
     if not image_name:
         return self.write(
             dict(errcode=RET.THIRDERR, msg=error_map[RET.THIRDERR]))
     try:
         ret = self.db.execute(
             "update ih_user_profile set up_avatar=%s where up_user_id=%s",
             image_name, user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, msg="upload failed"))
     image_url = config.qiniu_url + image_name
     return self.write(dict(errcode=RET.OK, msg={"url": image_url}))
示例#18
0
    def post(self):
        #'''In[基本信息]'''
        house_title = self.get_argument('house_title', '')  #房屋标题
        one_night_price = int(self.get_argument('one_night_price', ''))  #每晚价格
        area_id = int(self.get_argument('area_id', ''))  #所在城区
        address = self.get_argument('address', '')  #详细地址

        #'''In[详细信息]'''
        room_count = int(self.get_argument('room_count', ''))  #出租房间数目
        aacreage = int(self.get_argument('acreage', ''))  #房屋面积
        unit = self.get_argument('unit', '')  #户型描述
        capacity = int(self.get_argument('capacity', ''))  #宜住人数
        beds = self.get_argument('beds', '')  #卧床配置
        deposit = int(self.get_argument('deposit', ''))  #押金数额
        min_days = int(self.get_argument('min_days', ''))  #最少入住天数
        max_days = int(self.get_argument('max_days', ''))  #最多入住天数
        facility = self.get_body_arguments('facility[]', '')  #配套设施
        himage = self.request.files.get('house_image', '')  #获取图片

        if not all(
            (house_title, one_night_price, area_id, address, room_count,
             aacreage, unit, capacity, beds, deposit, min_days, himage)):
            return self.write(dict(errcode=RET.DATAERR, errmsg="缺少参数"))

        if max_days == 0 and min_days < 0:
            return self.write(
                dict(errcode=RET.DATAERR, errmsg="最多入住天数等于0时,入住最少天数不应比0小"))

        if max_days > 0 and min_days > max_days:
            return self.write(
                dict(errcode=RET.DATAERR, errmsg="最多入住天数应大于最少入住天数"))

        # '''In[保存图片]'''
        try:
            T = Tenant.by_mobile(self.current_user.phone_number)
            hous_info = Hous_info()
            hous_info.tenant_id = T.id  #保存房东ID(外键)
            hous_info.name = house_title  #保存房屋名称
            hous_info.price = one_night_price  #保存每晚价格
            hous_info.hous_areaid = area_id  #保存区域ID(外键)
            hous_info.site = address  #保存地址
            hous_info.room_count = room_count  #保存房间数量
            hous_info.acreage = aacreage  #保存房屋面积
            hous_info.type = unit  #保存房屋
            hous_info.capacity = capacity  #保存户型描述
            hous_info.bed = beds  #保存床配置
            hous_info.deposit = deposit  #保存押金
            hous_info.min_days = min_days  #保存最小天数
            hous_info.max_days = max_days  #保存最大天数
            hous_info.ctime = datetime.now()  #保存创建时间

            # 房屋与配套设施中间表
            try:
                for i in facility:
                    facilitys = Facility.by_id(i)
                    hous_info.info_facility.append(facilitys)
            except Exception as e:
                logging.error(e)
                return self.write(dict(errcode=RET.PARAMERR,
                                       errmsg='配套设施参数错误'))

            try:
                file_name = storage(himage[0]['body'])
                hous_info.image_url = (constants.QINIU_URL_PREFIX + file_name
                                       )  #图片路径
            except Exception as e:
                logging.error(e)
                return self.write(dict(errcode=RET.PARAMERR, errmsg='图片保存错误'))

            self.db.add(hous_info)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(
                dict(errcode=RET.PARAMERR, errmsg='hous_info参数错误'))
        self.write(dict(errno=RET.OK, errmsg='OK'))