Ejemplo n.º 1
0
 def delete(self):
     '''
     博文删除
     :blogid  博文id/单点删除
     :listid  博文id列表/批量删除
     '''
     if self.current_user['user'] != 'nkx':
         return self.write({'status':1, 'msg':'WARRING!  权限不足'})
     blogid = self.get_argument('id',-1)
     listid = self.get_argument('id', {})
     deletesql = "delete from blog where id=%s"
     deletetag = "delete from blogtag where blog_id=%s"
     print(blogid,type(blogid))
     if blogid != -1 and type(blogid) == str:
         blogid = int(blogid)
         number = sqlconn.exec_sql(deletesql,(blogid))
         if number:
             tagnumber = sqlconn.exec_sql(deletetag,(blogid))
             print(tagnumber)
             re_data = {'status':0, 'msg':'删除成功'}
         else:
             re_data = {'status':1, 'msg':'删除失败'}
         return self.write(re_data)
     elif listid:
         listid = json.loads(listid)
         for i in listid:
             number = sqlconn.exec_sql(deletesql,(listid[i]))
             if number:
                 sqlconn.exec_sql(deletetag,(blogid))
         re_data = {'status':0, 'msg':'删除成功'}
         return self.write(re_data)
     else:
         return self.write({'status':1, 'msg':'传值错误'})
Ejemplo n.º 2
0
    def post(self):
        index = self.get_argument('index', '')
        blogid = self.get_argument('id', '')
        if index:
            now = datetime.date.today()
            print(now)
            sql = 'select id from visitor where time=%s'
            status = sqlconn.exec_sql(sql,(now))
            if status:
                print('自增')
                sumsql = 'update visitor set sums=sums+1 where id=1'
                sqlconn.exec_sql(sumsql)
                sql2 = 'update visitor set sums=sums+1 where time=%s'
                sqlconn.exec_sql(sql2,(now))
            else:
                print('新建')
                sql2 = "insert into visitor (time,sums) values (%s,1)"
                sqlconn.exec_sql(sql2,(now))
            return self.write({'status':0})

        elif blogid:
            blogsql = 'update blog set views=views+1 where id=%s'
            sqlconn.exec_sql(blogsql,(blogid))
            return self.write({'status':0})

        self.write({'status':1, 'msg':'无效参数'})
Ejemplo n.º 3
0
    def put(self):
        '''
        博文修改
        :flag   修改类型
        :title  标题
        :category 分类
        :weight   权重
        :blogid   博文id
        '''
        if self.current_user['user'] != 'nkx':
            return self.write({'status':1, 'msg':'WARRING!  权限不足'})
        flag = self.get_argument('flag','')
        if flag == 'body':
            body = json.loads(self.request.body)
            blogid = body['id']
            blogtext = body['body']
            digested = body['digested']
            bloghtml = markdown.markdown(blogtext, extensions=['markdown.extensions.extra','markdown.extensions.toc','markdown.extensions.codehilite'])

            blogsql = "update blog set body=%s,digested=%s,html=%s where id=%s"
            blognumber = sqlconn.exec_sql(blogsql,(blogtext,digested,bloghtml,blogid))
            if blognumber:
                re_data = {'status':0, 'msg':'修改成功'}
            else:
                re_data = {'status':1, 'msg':'修改失败'}
            return self.write(re_data)

        elif flag == 'head':
            body = json.loads(self.request.body)
            title = body['title']
            category = body['category']
            weight = body['weight']
            blogid = body['id']
     
            categorysql = "select id from category where category.name=%s"
            number,results = sqlconn.exec_sql_feach(categorysql,(category))
            if number:
                categoryid = results[0]['id']
                blogsql = "update blog set title=%s,category_id=%s,weight=%s where id=%s"
                blognumber = sqlconn.exec_sql(blogsql,(title,categoryid,weight,blogid))
                if blognumber:
                    re_data = {'status':0, 'msg':'修改成功'}
                else:
                    re_data = {'status':1, 'msg':'保存失败'}
            else:
                re_data = {'status':1, 'msg':'分类不存在'}
            return self.write(re_data)
        else:
            return self.write({'status':1, 'msg':'无法识别的参数'})     
Ejemplo n.º 4
0
 def put(self):
     '''
     注册用户
     '''
     body = json.loads(self.request.body)
     user = body['user']
     pwd = body['passwd']
     pwd2 = body['passwd2']
     search = sqlconn.exec_sql('select id from author where name=%s', (user))
     if search:
         return self.write({'status':1, 'msg':'用户已存在'})
     else:
         regisql = "insert into author (name,img,passwd) values (%s,%s,%s)"
         sqlconn.exec_sql(regisql,(user,"/static/img/img.jpg",pwd))
         return self.write({'status':0, 'msg':'注册成功'})
Ejemplo n.º 5
0
 def get(self):
     sql1 = 'select id as blogsums from blog'
     sql2 = 'select id as msg from message'
     sql3 = 'select sums from visitor where id=1'
     with open('admin.txt', 'r') as f:
         ls = f.read()
     time = datetime.datetime.utcfromtimestamp(int(ls)).__str__()[:10]
     r_data = {}
     r_data['blogsums'] = sqlconn.exec_sql(sql1)
     r_data['message'] = sqlconn.exec_sql(sql2)
     r_data['time'] = time
     number,results = sqlconn.exec_sql_feach(sql3)
     r_data['views'] = results[0]['sums']
     re_data = {'status':0, 'data':r_data}
     self.write(re_data)
Ejemplo n.º 6
0
    def get(self):
        tag = self.get_argument("flag",'')
        page = self.get_argument("page", 1)
        size = self.get_argument("limit", 5)

        pagesize = (int(page)-1)*int(size)
        size = int(size)
        if tag:
            sql = "select blog.id,blog.title,author.name as author,category.name as category,blog.create_time,blog.change_time,blog.views,blog.digested "
            sql += "from blog "
            sql += "left join blogtag on blog.id = blogtag.blog_id left join tag on tag.id = blogtag.tag_id "
            sql += "left join category on blog.category_id = category.id left join author on blog.author_id = author.id "
            sql += "where blogtag.tag_id=%s"
        else:
            return self.finish({'status': 1, 'msg':'无效的查询参数' , 'data':''})
        
        totalnum = sqlconn.exec_sql(sql,(tag))
        sql += " limit %s,%s"
        number,results = sqlconn.exec_sql_feach(sql,(tag,pagesize,size))
        if number:
            re_data = {'status': 0, 'msg':'' , 'data':results}
        else:
            re_data = {'status': 1, 'msg':'没有数据' , 'data':''}
        re_data['total'] = totalnum if totalnum else 0
        self.write(re_data)
Ejemplo n.º 7
0
 def delete(self):
     body = json.loads(self.request.body)
     todosql = "delete from todolist where id=%s"
     number = sqlconn.exec_sql(todosql,(body))
     if number:
         return self.write({'status':0, 'msg':'删除成功'})
     else:
         return self.write({'status':1, 'msg':'删除失败'})
Ejemplo n.º 8
0
 def post(self):
     body = json.loads(self.request.body)
     todosql = "insert into todolist (title,status) values (%s,%s)"
     number = sqlconn.exec_sql(todosql,(body['title'],'false'))
     if number:
         return self.write({'status':0, 'msg':'创建成功'})
     else:
         return self.write({'status':1, 'msg':'创建失败'})
Ejemplo n.º 9
0
    def put(self):
        '''
        :page   页数
        :size   页面大小
        :select 筛选条件
        :value  筛选内容
        '''
        page = self.get_argument('page', 1)
        size = self.get_argument('limit', 5)
        select = self.get_argument("select", '')
        value = self.get_argument("value", '')

        sql = "select blog.id,blog.title,blog.weight,author.name as author,category.name as category,blog.create_time,blog.change_time,blog.views,blog.digested "
        sql += "from blog "
        #sql += "left join blogtag on blog.id = blogtag.blog_id left join tag on tag.id = blogtag.tag_id "
        sql += "left join category on blog.category_id = category.id "
        sql += "left join author on blog.author_id = author.id "

        pagesize = (int(page) - 1) * int(size)
        size = int(size)

        if select in ['author', 'category', 'title', 'digested'] and value:
            print('文字搜索')
            if select in ['author', 'category']:
                sql += "where %s.name like '%s' "
            else:
                sql += "where %s like '%s' "
            value = '%' + value + '%'
        elif select in ['views', 'weight'] and value:
            print('数字搜索')
            if value[0] == '@':
                value = value[1:]
                sql += "where %s<%s "
            elif value[-1] == '$':
                value = value[:-1]
                sql += "where %s>%s "
            else:
                sql += "where %s=%s "
            try:
                value = int(value)
            except:
                return self.write({'status': 1, 'msg': '输入值不合法'})
        else:
            self.write({'status': 1, 'msg': '未识别的请求'})

        totalsql = sql % (select, value)
        totalnum = sqlconn.exec_sql(totalsql)
        sql += "limit %s,%s"
        resql = sql % (select, value, pagesize, size)
        number, results = sqlconn.exec_sql_feach(resql)

        if results:
            re_data = {'status': 0, 'msg': '', 'data': results}
        else:
            re_data = {'status': 1, 'msg': '数据为空', 'data': ''}

        re_data['total'] = totalnum if totalnum else 0
        self.write(re_data)
Ejemplo n.º 10
0
    def delete(self):
        '''
        博文删除
        :blogid  博文id/单点删除
        :listid  博文id列表/批量删除
        '''
        blogid = self.get_argument('id', -1)
        listid = self.get_argument('ids', {})
        deletesql = "delete from blog where id=%s"
        deletetag = "delete from blogtag where blog_id=%s"

        searchsql = "select category.id,DATE_FORMAT(blog.create_time,'%%Y-%%m') as `group` from category,blog where category.id=blog.category_id and blog.id=%s"
        searchtag = "select GROUP_CONCAT(blogtag.tag_id) as tagid from blogtag where blogtag.blog_id=%s"
        print(blogid, type(blogid))
        if blogid != -1 and type(blogid) == str:
            blogid = int(blogid)
            number, category = sqlconn.exec_sql_feach(searchsql, (blogid))
            number, taglist = sqlconn.exec_sql_feach(searchtag, (blogid))
            category[0]['id'] = '1'
            delist = [[category[0], taglist[0]]]
            number = sqlconn.exec_sql(deletesql, (blogid))
            if number:
                tagnumber = sqlconn.exec_sql(deletetag, (blogid))
                print(tagnumber)
                re_data = {'status': 0, 'msg': '删除成功'}
                print('del', delist)
                return re_data, delist, blogid
            else:
                re_data = {'status': 1, 'msg': '删除失败'}
                return self.write(re_data), None, None
        elif listid:
            listid = json.loads(listid)
            delist = []
            for i in listid:
                number, category = sqlconn.exec_sql_feach(searchsql, (blogid))
                number, taglist = sqlconn.exec_sql_feach(searchtag, (blogid))
                category[0]['id'] = '1'
                delist.append([category[0], taglist[0]])
                number = sqlconn.exec_sql(deletesql, (listid[i]))
                if number:
                    sqlconn.exec_sql(deletetag, (blogid))
            re_data = {'status': 0, 'msg': '删除成功'}
            return re_data, delist, listid
        else:
            return self.write({'status': 1, 'msg': '传值错误'}), None, None
Ejemplo n.º 11
0
    def post(self):
        '''
        新建博文
        '''
        author = self.current_user['user']
        body = self.request.body.decode()
        body = json.loads(body)
        print(body)

        categorysql = "select id from category where category.name=%s"
        number, results = sqlconn.exec_sql_feach(categorysql,
                                                 (body['category']))
        if number:
            category_id = results[0]['id']
            print('category_id', type(category_id))
        authorsql = "select id from author where author.name=%s"
        number, results = sqlconn.exec_sql_feach(authorsql, (author))
        if number:
            author_id = results[0]['id']
            print('author_id', type(author_id))
        print(type(body['weight']))
        sql = """insert into blog (title,body,html,digested,author_id,category_id,weight,create_time) values (%s,%s,%s,%s,%s,%s,%s,%s)"""
        if 'create_time' not in body.keys():
            body['create_time'] = datetime.datetime.now().strftime(
                '%Y-%m-%d %H:%M:%S')
        body['html'] = markdown.markdown(body['body'],
                                         extensions=[
                                             'markdown.extensions.extra',
                                             'markdown.extensions.toc',
                                             'markdown.extensions.codehilite'
                                         ])
        number, results = sqlconn.exec_sql_feach(
            sql, (body['title'], body['body'], body['html'], body['digested'],
                  author_id, category_id, body['weight'], body['create_time']))
        if number:
            number, blog_id = sqlconn.exec_sql_feach(
                """select id from blog where blog.title=%s""", (body['title']))
            blog_id = blog_id[0]['id']
            print('blog_id', blog_id)
            for tag in body['taglist']:
                tagsql = "select id from tag where tag.name=%s"
                number, tag_id = sqlconn.exec_sql_feach(tagsql, (tag))
                if number:
                    tag_id = tag_id[0]['id']
                    tagblogsql = """insert into blogtag (blog_id,tag_id) values (%s,%s)"""
                    number = sqlconn.exec_sql(tagblogsql, (blog_id, tag_id))
                else:
                    pass
        re_data = {'status': 0, 'msg': '保存成功', 'data': body}
        dellist = [[{
            'id': '1',
            'group': datetime.datetime.now().strftime('%Y-%m')
        }, {
            'tagid': body['taglist']
        }]]
        print('post', dellist)
        return re_data, dellist, None
Ejemplo n.º 12
0
    def post(self):
        body = json.loads(self.request.body)
        try:
            user = self.current_user['user']
            img = self.current_user['img']
        except:
            return self.write({'status':403, 'msg':'请先登录'})
        blogid = body['blogid']
        status = body['status']
        message = body['message']
        replyid = body['replyid']
        replyuser = body['replyuser']

        print(user,message,replyid,img,replyuser)
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        try:
            if message.split('\n')[0].split('@')[1]:
                replyblog = False
                message = '\n'.join(message.split('\n')[1:])
        except:
            replyblog = True
        if status == 0 or replyblog:
            floorsql = "select max(floor) as sum from comment where blog_id=%s"
            sums,results = sqlconn.exec_sql_feach(floorsql,(blogid))
            if sums:
                if results[0]['sum']:
                    floor = results[0]['sum'] + 1
                else:
                    floor = 1
            commsql = "insert into comment (user,message,create_time,floor,blog_id,img) values (%s,%s,%s,%s,%s,%s)"
            number = sqlconn.exec_sql(commsql,(user,message,now,floor,blogid,img))
            if number:
                return self.write({'status':0, 'msg':'回复成功'})
            else:
                return self.write({'status':1, 'msg':'回复失败'})
        elif status >= 1 and not replyblog:
            commsql = "insert into reply (user,message,create_time,comment_id,img,replyuser) values (%s,%s,%s,%s,%s,%s)"
            number = sqlconn.exec_sql(commsql,(user,message,now,replyid,img,replyuser))
            if number:
                return self.write({'status':0, 'msg':'回复成功'})
            else:
                return self.write({'status':1, 'msg':'回复失败'})
Ejemplo n.º 13
0
    def post(self):
        msgid = self.get_argument('msgid','')
        status = self.get_argument('status', '')

        msgsql = "update message set status=%s where id=%s"
        number = sqlconn.exec_sql(msgsql,(status,msgid))
        if number:
            re_data = {'status':0, 'msg':'操作成功'}
        else:
            re_data = {'status':1, 'msg':'操作失败'}
        self.write(re_data)
Ejemplo n.º 14
0
 def put(self):
     body = json.loads(self.request.body)
     todoid = body['id']
     title = body['title']
     status = body['status']
     if status:
         status = 'true'
     else:
         status = 'false'
     todosql = "update todolist set title=%s,status=%s where id=%s"
     number = sqlconn.exec_sql(todosql,(title,status,todoid))
     if number:
         return self.write({'status':0, 'msg':'修改成功'})
     else:
         return self.write({'status':1, 'msg':'修改失败'})
Ejemplo n.º 15
0
    def get(self):
        '''
        flag 没有返回分组,有返回分组内博文
        '''
        flag = self.get_argument('flag', '')
        page = self.get_argument("page", 1)
        size = self.get_argument("limit", 5)

        pagesize = (int(page)-1)*int(size)
        size = int(size)
        if not flag:
            sql = "select count(id) as nums,DATE_FORMAT(create_time,'%Y-%m') as time from blog group by DATE_FORMAT(create_time,'%Y-%m')"
            number,results = sqlconn.exec_sql_feach(sql)
            if results:
                for i in results:
                    year,mouth = i['time'].split('-')
                    i['flag'] = year + u'年' + mouth + u'月'
            else:
                results = []
            re_data = {'status':0, 'msg':'', 'data':results}
            return self.write(re_data)
        else:
            sql = "select blog.id,blog.title,author.name as author,category.name as category,blog.create_time,blog.change_time,blog.views,blog.digested "
            sql += "from blog "
            sql += "left join category on blog.category_id = category.id left join author on blog.author_id = author.id "
            sql += "where create_time like '%s%%' "

            sql = sql%(flag)
            totalnum = sqlconn.exec_sql(sql)
            sql2 = sql + " limit %s,%s"%(pagesize,size)
            number,results = sqlconn.exec_sql_feach(sql2)
            if results:
                re_data = {'status':0, 'data':results}
            else:
                re_data = {'status':1, 'msg':'asdf'}
            re_data['total'] = totalnum if totalnum else 0
            self.write(re_data)
Ejemplo n.º 16
0
    def put(self):
        '''
        博文修改
        :flag   修改类型
        :title  标题
        :category 分类
        :weight   权重
        :blogid   博文id
        '''
        flag = self.get_argument('flag', '')

        searchsql = "select category.id,DATE_FORMAT(blog.create_time,'%%Y-%%m') as `group` from category,blog where category.id=blog.category_id and blog.id=%s"
        searchtag = "select GROUP_CONCAT(blogtag.tag_id) as tagid from blogtag where blogtag.blog_id=%s"
        body = json.loads(self.request.body.decode())
        blogid = body['id']

        number, category = sqlconn.exec_sql_feach(searchsql, (blogid))
        number, taglist = sqlconn.exec_sql_feach(searchtag, (blogid))
        category[0]['id'] = '1'
        delist = [[category[0], taglist[0]]]
        print('put', delist)

        if flag == 'body':
            blogtext = body['body']
            digested = body['digested']
            bloghtml = markdown.markdown(blogtext,
                                         extensions=[
                                             'markdown.extensions.extra',
                                             'markdown.extensions.toc',
                                             'markdown.extensions.codehilite'
                                         ])

            blogsql = "update blog set body=%s,digested=%s,html=%s where id=%s"
            blognumber = sqlconn.exec_sql(
                blogsql, (blogtext, digested, bloghtml, blogid))
            if blognumber:
                re_data = {'status': 0, 'msg': '修改成功'}
                return re_data, delist, blogid
            else:
                re_data = {'status': 1, 'msg': '修改失败'}
                return self.write(re_data), None, None

        elif flag == 'head':
            title = body['title']
            category = body['category']
            weight = body['weight']

            categorysql = "select id from category where category.name=%s"
            number, results = sqlconn.exec_sql_feach(categorysql, (category))
            if number:
                categoryid = results[0]['id']
                blogsql = "update blog set title=%s,category_id=%s,weight=%s where id=%s"
                blognumber = sqlconn.exec_sql(
                    blogsql, (title, categoryid, weight, blogid))
                if blognumber:
                    re_data = {'status': 0, 'msg': '修改成功'}
                    return re_data, delist, blogid
                else:
                    re_data = {'status': 1, 'msg': '保存失败'}
                    return self.write(re_data), None, None
            else:
                re_data = {'status': 1, 'msg': '分类不存在'}
                return self.write(re_data), None, None
        else:
            return self.write({'status': 1, 'msg': '无法识别的参数'}), None, None
Ejemplo n.º 17
0
    def get(self):
        '''
        博文获取
        ;search 博文属性
        ;flag   搜索值
        ;page   页数
        ;limit  大小
        '''
        flag = self.get_argument('flag', '')
        search = self.get_argument('search', '')
        page = self.get_argument('page', 1)
        size = self.get_argument('limit', 5)

        pagesize = (int(page) - 1) * int(size)
        size = int(size)
        sql = "select blog.id,blog.title,blog.weight,author.name as author,category.name as category,blog.create_time,blog.change_time,blog.views,blog.digested "
        sql += "from blog "
        #sql += "left join blogtag on blog.id = blogtag.blog_id left join tag on tag.id = blogtag.tag_id "
        sql += "left join category on blog.category_id = category.id "
        sql += "left join author on blog.author_id = author.id "

        if search == 'category' and flag:
            if flag != '1':
                print('不是首页')
                totalsql = sql + "where category.id=%s"
                totalnum = sqlconn.exec_sql(totalsql, (flag))
                sql += "where category.id=%s limit %s,%s"
                number, results = sqlconn.exec_sql_feach(
                    sql, (flag, pagesize, size))
            elif flag == '1':
                print('首页')
                totalnum = sqlconn.exec_sql(sql)
                sql += "limit %s,%s"
                number, results = sqlconn.exec_sql_feach(sql, (pagesize, size))

            if results:
                re_data = {'status': 0, 'msg': '', 'data': results}
                re_data['total'] = totalnum if totalnum else 0
                return re_data
            else:
                re_data = {'status': 1, 'msg': '数据为空', 'data': ''}
                return self.write(re_data)

        elif search == 'tag' and flag:
            sql += "left join blogtag on blog.id = blogtag.blog_id left join tag on tag.id = blogtag.tag_id "
            if flag:
                sql += "where blogtag.tag_id=%s"
            else:
                return self.write({'status': 1, 'msg': '无效的查询参数', 'data': ''})

            totalnum = sqlconn.exec_sql(sql, (flag))
            sql += " limit %s,%s"
            number, results = sqlconn.exec_sql_feach(sql,
                                                     (flag, pagesize, size))
            if number:
                re_data = {'status': 0, 'msg': '', 'data': results}
                re_data['total'] = totalnum if totalnum else 0
                return re_data
            else:
                re_data = {'status': 1, 'msg': '没有数据', 'data': ''}
                return self.write(re_data)

        elif search == 'group' and flag:
            if flag == '1':
                sql = "select count(id) as nums,DATE_FORMAT(create_time,'%Y-%m') as time from blog group by DATE_FORMAT(create_time,'%Y-%m')"
                number, results = sqlconn.exec_sql_feach(sql)
                if results:
                    for i in results:
                        year, mouth = i['time'].split('-')
                        i['flag'] = year + u'年' + mouth + u'月'
                else:
                    results = []
                re_data = {'status': 0, 'msg': '', 'data': results}
                return re_data
            else:
                sql += "where create_time like '%s%%' "

                sql = sql % (flag)
                totalnum = sqlconn.exec_sql(sql)
                sql2 = sql + " limit %s,%s" % (pagesize, size)
                number, results = sqlconn.exec_sql_feach(sql2)
                if results:
                    re_data = {'status': 0, 'data': results}
                    re_data['total'] = totalnum if totalnum else 0
                    return re_data
                else:
                    re_data = {'status': 1, 'msg': 'asdf'}
                    return self.write(re_data)
        else:
            return self.write({'status': 1, 'msg': '未识别的请求'})