コード例 #1
0
ファイル: handlers.py プロジェクト: hearain528/blog
def api_blogList(*, page = 1):
    r = web.Response()
    num = yield from Blogs.findNumber('count(id)')
    p = Page(num, int(page))
    if num == 0:
        data = dict(page = class_to_dict(p), blogs = ())
    else:
        blogs = yield from Blogs.findAll(orderBy = 'create_time desc', limit = (p.offset, p.limit))
        for row in blogs:
            #获取文章分类
            category_sql = ['%s %s' % ('select GROUP_CONCAT(B.id) category_id,GROUP_CONCAT(B.title) category_title from blog_category as A ',
            'left join category as B on A.category_id = B.id')]
            category_sql.append('where')
            category_sql.append('blog_id=?')
            category = yield from select(category_sql, [row.id])
            #获取标签分类
            tag_sql = ['%s %s' % ('select GROUP_CONCAT(B.id) tag_id,GROUP_CONCAT(B.title) tag_title from blog_tag as A',
                'left join tag as B on A.tag_id = B.id ')]
            tag_sql.append('where')
            tag_sql.append('blog_id=?')
            tag = yield from select(tag_sql, [row.id])
            #获取文章评论数
            comment_num = yield from Comments.findNumber('count(id)', 'display = 1 and blog_id=?', [row.id])
            if category[0].get('category_id') is not None:
                row.category_id = category[0].get('category_id').split(',')
            if category[0].get('category_title') is not None:
                row.category_title = category[0].get('category_title').split(',')
            if tag[0].get('tag_id') is not None:
                row.tag_id = tag[0].get('tag_id').split(',')
            if tag[0].get('tag_title') is not None:
                row.tag_title = tag[0].get('tag_title').split(',')
            row.comment_num = comment_num
        data = dict(page = class_to_dict(p), blogs = blogs)
    result = APIResult(1, data)
    return jsonResult(r, result)