def edit_article(*, request, blog_id): blog = yield from Blogs.findOne(blog_id) if blog is not None: # 获取文章分类 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, [blog_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, [blog_id]) if len(category) > 0: if category[0].get('category_id') is not None: blog['category_id'] = category[0].get('category_id').split(',') if category[0].get('category_title') is not None: blog['category_title'] = category[0].get('category_title').split(',') if len(tag) > 0: if tag[0].get('tag_id') is not None: blog['tag_id'] = tag[0].get('tag_id').split(',') if tag[0].get('tag_title') is not None: blog['tag_title'] = tag[0].get('tag_title').split(',') logging.info(blog) #blog['content'] = """%s""" % (blog['content']) return display('edit_article', {'blog': blog}) else: return redirect('/404')
def get_blog(*, request, id): blog = yield from Blogs.findOne(id) if blog is not None: # 访问次数加1 sql = 'update blogs set view_count = view_count + 1 where id = ?' yield from execute(sql, [id]) #获取文章分类 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, [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, [id]) #获取作者 user = yield from User.findOne(blog['user_id']) #获取评论 comment_sql = ['select *,(select count(*) from comments where parent = A.id) as children from comments as A '] comment_sql.append('where') comment_sql.append('display = 1 and parent = 0 and blog_id=?') comments = yield from select(comment_sql, [id]) blog['comment_num'] = len(comments) if len(comments) > 0: for k in range(len(comments)): comments[k]['child'] = [] child_sql = ['select * from comments'] child_sql.append('where') child_sql.append('display = 1 and parent = ?') children = yield from select(child_sql, comments[k].get('id')) comments[k]['child'] = children blog['comment_num'] = blog['comment_num'] + len(children) blog['comments'] = comments if user is not None: blog['author'] = user['name'] if len(category) > 0: if category[0].get('category_id') is not None: blog['category_id'] = category[0].get('category_id').split(',') if category[0].get('category_title') is not None: blog['category_title'] = category[0].get('category_title').split(',') if len(tag) > 0: if tag[0].get('tag_id') is not None: blog['tag_id'] = tag[0].get('tag_id').split(',') if tag[0].get('tag_title') is not None: blog['tag_title'] = tag[0].get('tag_title').split(',') logging.info(blog) return display('content' ,{'blog': blog}) else: return redirect('/404')
def api_article_edit(*, request, id, title, category, tag, content, summary): r = web.Response() blog = yield from Blogs.findOne(id) blog = Blogs(id = id, title = title, summary = summary, content = content, update_time = currentTime(), create_time = blog.get('create_time'), user_id = blog.get('user_id'), view_count = blog.get('view_count')) result = yield from blog.update() category = urldecode(category) category = category[0].split(',') tags = tag.split('/') blog_category_id = 0 blog_tag_id = 0 if result > 0: #文章分类插入 blog_category_sql = 'delete from blog_category where blog_id = ?' yield from execute(blog_category_sql, [id]) blog_tag_sql = 'delete from blog_tag where blog_id = ?' yield from execute(blog_tag_sql, [id]) for i in category: blog_category = BlogCategory(blog_id = id, category_id = i) blog_category_id = yield from blog_category.save() #标签分类插入 for t in tags: t = t.strip() tag_title = yield from Tag.findAll('title=?', [t]) #如果标签存在,则插入博客标签表,若不存在,则两张表都要插入 if len(tag_title) > 0: tag_id = tag_title[0].get('id') else: tag = Tag(title = t) tag_id = yield from tag.save() blog_tag = BlogTag(blog_id = id, tag_id = tag_id) blog_tag_id = yield from blog_tag.save() if int(id) > 0 and int(blog_category_id) > 0 and int(blog_tag_id) > 0: result = APIResult(1, '', '修改成功') else: result = APIResult(0, '', '修改失败') return jsonResult(r, result)