예제 #1
0
 def search_list(self):
     """
     文章搜索列表
     :return:
     """
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     keywords = inputs.get('keywords', None)
     self.private_data['article_list'] = []
     self.private_data['current_page'] = 1
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     self.private_data['keywords'] = keywords
     try:
         category_list = Categories.select().where(Categories.status == 0). \
             order_by(Categories.id.desc())
         if keywords:
             article_query = Articles.select().where(
                 Articles.name.contains(keywords))
             total_count = article_query.count()
             total_page = (total_count + page_size - 1) / page_size
             self.private_data['total_page'] = total_page
             self.private_data['current_page'] = page
             self.private_data['category_list'] = category_list
             self.private_data['article_list'] = article_query.\
                 paginate(page, page_size)
             return self.display('front/search_list')
     except Exception as e:
         log.info('Failed to get search result. Keywords is %s. Error msg is',
                  keywords, e)
         log.error(traceback.format_exc())
     return self.display('front/search_list')
예제 #2
0
파일: referer.py 프로젝트: XinMa1/work
    def search(self):
        inputParams = self.getInput()
        keywords = inputParams["keywords"].strip().lower() if inputParams.has_key("keywords") else ""

        page = int(inputParams["page"]) if inputParams.has_key("page") else 1
        count = config.COUNT_PER_PAGE

        articlesList = Articles.select().where(Articles.name.contains(keywords))
        pageString = self.getPageStr(self.makeUrl("/admin/articles/list"), page, count, articlesList.count())
        articlesList = articlesList.order_by(Articles.id.desc())
        self.privData["ARTICLES_LIST"] = articlesList.paginate(page, page + count)
        self.privData["PAGE_STRING"] = pageString
        self.privData["ARTICLES_LIST"] = articlesList
        return self.display("articlesList")
예제 #3
0
파일: referer.py 프로젝트: XinMa1/work
    def list(self):
        inputParams = self.getInput()
        page = int(inputParams["page"]) if inputParams.has_key("page") else 1
        count = config.COUNT_PER_PAGE

        articlesList = Articles.select()

        pageString = self.getPageStr(self.makeUrl("/admin/articles/list"), page, count, articlesList.count())
        articlesList = articlesList.order_by(Articles.id.desc())
        self.privData["ARTICLES_LIST"] = articlesList.paginate(page, page + count)
        self.privData["PAGE_STRING"] = pageString
        self.privData["ARTICLES_LIST"] = articlesList

        return self.display("articlesList")
예제 #4
0
 def get_articles_center(self):
     inputs = self.get_input()
     try:
         page = int(inputs['page']) if inputs.has_key('page') else 1
         category_id = inputs['category_id']
         articles = Articles.select().where(
             Articles.category == category_id).order_by(Articles.id.desc())
         return json.dumps([{
             'id': it.id,
             'name': it.name,
             'thumbnail': it.thumbnail.thumbnail,
             'content': self.htmlunquote(it.content),
         } for it in articles.paginate(page, PAGINATE_COUNT_10)])
     except Exception as e:
         log.error('get_articles_center%s' % traceback.format_exc())
         return self.error()
예제 #5
0
 def article_tag_list(self):
     """标签下文章列表:return:"""
     inputs = self.get_input()
     tag = inputs.get('tag', None)
     self.private_data['category_list'] = []
     self.private_data['tag'] = tag
     self.private_data['article_list'] = []
     try:
         category_list = Categories.select().where(Categories.status == 0).\
             order_by(Categories.id.desc())
         if tag:
             article_query = Articles.select().where(Articles.keywords.contains(tag))
             self.private_data['category_list'] = category_list
             self.private_data['article_list'] = article_query.paginate(1, 20)
         return self.display('front/tags_list')
     except Exception as e:
         log.info('Failed to get search result.tag is%s.Error msg is', tag, e)
         log.error(traceback.format_exc())
     return self.display('front/tags_list')    \
예제 #6
0
파일: base.py 프로젝트: colinshin/webpyBlog
 def get_tags(self):
     db = TinyDB('settings/db.json')
     table = db.table('_default')
     res = table.get(where('name') == 'tags')
     if res:
         data = res.get("data")
         tags_dict_list = json.loads(data)
     else:
         tags_list = Tags.select().where(Tags.status == 0)
         tags_dict_list = []
         for tag in tags_list:
             count = Articles.select().where(
                 Articles.keywords.contains(str(tag.name))).count()
             tags_dict_list.append({tag.name: count})
         db.truncate()
         table = db.table('_default')
         table.insert({"name": "tags", "data": json.dumps(tags_dict_list)})
         db.close()
     return tags_dict_list
예제 #7
0
 def articles(self):
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     self.private_data['current_page'] = page
     self.private_data['total_page'] = 0
     self.private_data['article_list'] = []
     try:
         article_query = Articles.select().where(Articles.status == 0) \
             .order_by(Articles.id.asc())
         total_count = article_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['total_page'] = total_page
         self.private_data['article_list'] = \
             article_query.paginate(page, page_size).execute()
         return self.display('admin/article_list')
     except Exception as e:
         log.error('Failed to get article list data. Error msg %s', e)
         log.error(traceback.format_exc())
         return self.display('admin/article_list')
예제 #8
0
 def GET(self):
     """
     首页
     :return:
     """
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     self.private_data['article_list'] = []
     self.private_data['current_page'] = 1
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     try:
         album = Albums.get(Albums.is_show == 1)
         images = Images.select().where(Images.status == 0,
                                             Images.album == album.id)
         images_dict_list = []
         for image in images.dicts().iterator():
             image_dict = {
                 'link': image.get("link"),
                 'url': config.WEB_URL + 'static/uploads/' +
                        image.get("uuid") + '.jpeg'
             }
             images_dict_list.append(image_dict)
         category_list = Categories.select().where(
             Categories.status == 0). \
             order_by(Categories.id.desc())
         article_query = Articles.select().where(Articles.status == 0). \
             order_by(Articles.id.desc())
         article_list = article_query.paginate(page, page_size)
         total_count = article_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['article_list'] = article_list.execute()
         self.private_data['current_page'] = page
         self.private_data['total_page'] = total_page
         self.private_data['images_list'] = images_dict_list
         self.private_data['category_list'] = category_list.execute()
     except Exception as e:
         log.error('Failed to get home data. Error msg %s', e)
         log.error(traceback.format_exc())
     return self.display('front/index')
예제 #9
0
    def articles(self):
        """
        文章分类列表
        :return:
        """
        inputs = self.get_input()
        page = int(inputs.get('page', 1))
        page_size = int(inputs.get('page_size', 20))
        category_id = int(inputs.get('category_id', 2))
        self.private_data['article_list'] = []
        self.private_data['current_page'] = 1
        self.private_data['total_page'] = 0
        self.private_data['category_list'] = []
        self.private_data['current_category'] = None
        try:
            category = Categories.get(Categories.id == category_id)
            category_list = Categories.select().where(Categories.status == 0).\
                order_by(Categories.id.desc())

            article_query = Articles.select().where(
                Articles.category == category.id).order_by(Articles.id.desc())
            article_list = article_query.paginate(page, page_size)
            total_count = article_query.count()
            total_page = (total_count + page_size - 1) / page_size
            self.private_data['article_list'] = article_list
            self.private_data['current_category'] = category
            self.private_data['current_page'] = page
            self.private_data['category_list'] = category_list
            self.private_data['total_page'] = total_page
            return self.display('front/article_list')
        except Exception as e:
            log.error('Failed to get category articles data. '
                      'Category_id is %s Error msg %s', category_id, e)
            log.error(traceback.format_exc())
        # return self.error(msg="获取列表信息失败!", url=self.make_url('/views/home'))
        return self.display('front/article_list')