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)
def archive(request): blogs = yield from Blogs.findAll(orderBy='create_time desc') year = {} for row in blogs: create_time = datetime.datetime.strptime(row.create_time, '%Y-%m-%d %H:%M:%S') month_day = {} if year.get(create_time.year) is None: month_day['%s月%s日' % (create_time.month,create_time.day)] = [] month_day['%s月%s日' % (create_time.month,create_time.day)].append(row) year[create_time.year] = month_day else: if year.get(create_time.year).get('%s月%s日' % (create_time.month,create_time.day)) is None: year[create_time.year]['%s月%s日' % (create_time.month,create_time.day)] = [] year[create_time.year]['%s月%s日' % (create_time.month, create_time.day)].append(row) else: year[create_time.year]['%s月%s日' % (create_time.month, create_time.day)].append(row) return display('archive',{'year' : year})
def index(): blogs = yield from Blogs.findAll() return { '__template__': 'blogs.html', 'blogs':blogs }