def list_fs(cls): """获得文件列表""" try: file_list = cls.fs.list() return file_list except Exception as e: logger.error(e.message)
def __init__(self, product_list, **kwargs): try: self._webmaster = kwargs.get('w_m') self._product_list = product_list self._page_items = self.__get_page_items() except (KeyError, TypeError, ValueError, AssertionError) as e: logger.error('Get a page response error.')
def get_obj(self, key): """从缓存读取数据""" try: value = self._mc.get(key) return value except Exception as e: logger.error(e.message)
def delete(cls, db, collection, spec_or_id=None): """删除集合数据""" try: result = cls.client[db][collection].remove(spec_or_id) return result except Exception as e: logger.error(e.message)
def get(self): try: self._event('to_login') self.render(settings.login_template) except Exception as e: logger.error('[message: %s]' % e.message) self.render(settings.cms_error_template)
def get(self): try: user_id = self.get_cookie('u_i') if self.get_cookie( 'u_i') else Session.get_session_id() redirect_url, cpc_id = self.cpc_effect(user_id, **self.params) if not redirect_url: self.redirect(url=settings.host_src, permanent=True) self.set_cookie('u_i', user_id, expires_days=settings.cookie_alive_time) self.set_cookie('xc_source', 'xingcloud', expires_days=settings.cookie_alive_time) self.set_cookie('m_c', self.params.get('m_c'), expires_days=settings.cookie_alive_time) self.set_cookie('c_i', cpc_id.__str__(), expires_days=settings.cookie_alive_time) self.redirect(url=redirect_url, permanent=True) except Exception as e: self.cpc_un_effect(cpc_id) logger.error('[message: %s]; [params: %s]' % (e.message, self.params.__str__()))
def __init__(self, page_index, page_size, page_count, page_items): try: self._page_index = page_index self._page_size = page_size self._page_count = page_count self._page_items = page_items except (KeyError, TypeError, ValueError, AssertionError) as e: logger.error('Get a page response error.')
def insert(cls, db, collection, document): """插入数据""" try: if not document: return None obj_id = cls.client[db][collection].insert(document) return obj_id except Exception as e: logger.error(e.message)
def remove(cls, filename=None, object_id=None): """删除文件""" try: assert filename or object_id key = cls.fs.get_last_version( filename)._id if filename else ObjectId(object_id) cls.fs.delete(key) except Exception as e: logger.error(e.message)
def update(cls, db, collection, spec_or_id, document): """保存更新数据""" try: if not document: return None obj_id = cls.client[db][collection].update(spec_or_id, document) return obj_id except Exception as e: logger.error(e.message)
def __init__(self, product_list, **kwargs): try: self._webmaster = kwargs.get('webmaster') self._product_list = product_list self._page_size = int(kwargs.get('pageSize', settings.page_size)) self._page_index = int(kwargs.get('pageIndex', 1)) self._page_count = self.__get_page_count() self._page_items = self.__get_page_items() except (KeyError, TypeError, ValueError, AssertionError) as e: logger.error('Get a page response error.')
def crawling(product): """ 将页面js爬取的productFeed保存入库 """ try: if isinstance(product, dict): do_import_product(product, settings.tag_dict) except Exception as e: logger.error('Crawling error: %s' % e.message)
def find_one(cls, db, collection, spec_or_id=None): """根据id或者特殊匹配查询mongodb""" try: if isinstance(spec_or_id, str): id = ObjectId(spec_or_id) result = cls.client[db][collection].find_one(id) return result result = cls.client[db][collection].find_one(spec_or_id) return result except Exception as e: logger.error(e.message)
def post(self): try: method_name = self.params.get('callback') method_dict = { 'order': lambda: self._set_cpsuc(**self.params), } method_dict[method_name]() except Exception as e: logger.error('[message: %s]; [host: %s]; [ip: %s]; [params: %s]' % (e.message, self.request.host, self.request.remote_ip, self.params.__str__()))
def post(self): try: self._event('login_successful') username = self.params.get('username') password = self.params.get('password') if username == 'xingcloud' and password == 'affiliate': self.render(settings.cms_index_template) else: self.render(settings.login_template) except Exception as e: logger.error('[message: %s]' % e.message) self.render(settings.cms_error_template)
def get(cls, filename=None, object_id=None): """取文件""" try: assert filename or object_id content_obj = cls.fs.get_last_version( filename) if filename else cls.fs.get(ObjectId(object_id)) content = content_obj.read() headers = content_obj.headers filename = content_obj.filename return {"file": content, "headers": headers, "filename": filename} except Exception as e: logger.error(e.message)
def post(self): try: self._event('drawing') begin_date = DateUtil.str_2_date(self.params.get('begin'), '-') end_date = DateUtil.str_2_date(self.params.get('end'), '-') print begin_date, end_date if not (begin_date and end_date): self.write(json_encode({})) return param = self.get_param(begin_date, end_date) self.write(json_encode(param)) except Exception as e: logger.error('[message: %s]' % e.message)
def _set_cpsuc(self, **kwargs): try: self._event('cpsuc') order_list = json.loads(kwargs.get('orderList')) self._cpsuc_effect(order_list) result_info = { 'status': '200', 'message': 'successful', } self.write(json_encode(result_info)) except Exception as e: logger.error('[message: %s]; [host: %s]; [ip: %s]; [params: %s]' % (e.message, self.request.host, self.request.remote_ip, self.params.__str__()))
def find(cls, db, collection, spec_or_id=None, skip=0, limit=0, sort=None): """获取指定集合所有数据""" try: if limit: if sort: obj_list = cls.client[db][collection].find( spec_or_id).skip(skip).limit(limit).sort(sort) else: obj_list = cls.client[db][collection].find( spec_or_id).skip(skip).limit(limit) else: if sort: obj_list = cls.client[db][collection].find( spec_or_id).sort(sort) else: obj_list = cls.client[db][collection].find(spec_or_id) return list(obj_list) except Exception as e: logger.error(e.message)
def update_or_insert(cls, db, collection, document, spec_or_id=None): """更新数据,如果数据不存在则插入""" try: update_flag = False if (isinstance(spec_or_id, str) or isinstance(spec_or_id, dict)) and spec_or_id: existing_document = cls.find_one(db, collection, spec_or_id) if not existing_document: obj_id = cls.insert(db, collection, document) else: for k, v in document.items(): existing_document[k] = v obj_id = cls.client[db][collection].save(existing_document) update_flag = True else: obj_id = cls.insert(db, collection, document) return obj_id, update_flag except Exception as e: logger.error(e.message)
def put(cls, filename, image, suffix='png'): """上传文件""" try: filename = '%s.%s' % (filename, suffix) data = None headers = { "Cache-Control": "max-age=%s" % (60 * 60 * 24), "Content-type": "image/%s" % suffix } params = { "filename": filename, "headers": headers, "suffix": suffix } data = StringIO() image.save(data, suffix) cls.fs.put(data.getvalue(), **params) return filename except Exception as e: logger.error(e.message) finally: data.close()
def group(cls, db, collection, key, condition=None, initial=list(), reduce=None): """ 分组查询数据 param@key:根据key指定的字段进行分组 param@condition:筛选条件 param@initial:对于一组中的各个记录,都作为reduce函数的第一个参数执行reduce函数 param@reduce:reduce函数引用 """ try: result = cls.client[db][collection].group(key=key, condition=condition, initial=initial, reduce=reduce) return result except Exception as e: logger.error(e.message)
def put_obj(self, key, val, timeout): """向缓存添加数据""" try: self._mc.set(key, val, timeout) except Exception as e: logger.error(e.message)
def __init__(self, keyword): try: self._hot_word_list = self._get_hot_word_list(keyword) except Exception as e: logger.error('Get hot word list response error.')
def log_message(self): logger.error(self.message)