コード例 #1
0
ファイル: handlers.py プロジェクト: hearain528/blog
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')
コード例 #2
0
ファイル: handlers.py プロジェクト: hearain528/blog
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')
コード例 #3
0
ファイル: handlers.py プロジェクト: hearain528/blog
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)