Example #1
0
    def post(self):
        '''
        登录
        :user   用户名
        :pwd    密码
        '''
        body = json.loads(self.request.body.decode())
        user = body['username']
        pwd = body['password']

        if user == 'nkx':
            import time
            now = str(int(time.time()))
            with open('admin.txt', 'w') as f:
                f.write(now)
        usersql = "select name,img,group_id from author where name=%s and passwd=%s"
        status, results = sqlconn.exec_sql_feach(usersql, (user, pwd))
        if status:
            persql = "select permiss_list from `group` where id=%s"
            _s, result = sqlconn.exec_sql_feach(persql,
                                                (results[0]['group_id']))
            lists = json.loads(result[0]['permiss_list'])
            data = {
                'user': results[0]['name'],
                'img': results[0]['img'],
                'permission': lists
            }
            session_id = Session.setsession(user, pwd, data)
            self.set_secure_cookie("session_id", session_id)
            re_data = {'status': 0, 'msg': '登录成功'}
        else:
            re_data = {'status': 1, 'msg': '账号或密码错误'}
        self.write(re_data)
Example #2
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
Example #3
0
    def get(self):
        lists = {}

        tagsql = "select tag.name,tag.id from tag"
        number,results = sqlconn.exec_sql_feach(tagsql)
        lists['tag'] = results

        categorysql = "select name,id from category"
        number,results = sqlconn.exec_sql_feach(categorysql)
        lists['category'] = results

        re_data = {'status': 1, 'msg':'' , 'data':lists}
        self.write(re_data)
Example #4
0
 def get(self):
     blogid = self.get_argument('id', -1)
     if blogid == -1:
         return self.write({'status':1, 'msg':'请求错误'})
     commsql = "select id,img,user,message,create_time,floor from comment where blog_id=%s order by floor desc"
     commnum,results = sqlconn.exec_sql_feach(commsql,(blogid))
     results = self._time(results)
     for result in results:
         result['show'] = False
         result['look'] = '查看'
         print(type(result['create_time']))
         replysql = "select id,img,user,message,create_time from reply where comment_id=%s"
         replynum,reply = sqlconn.exec_sql_feach(replysql,(result['id']))
         result['children'] = self._time(reply)
     self.write({'status':0, 'data':results})
Example #5
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)
Example #6
0
    def get(self):
        """
        systemsql = "select GROUP_CONCAT(min1) as min1, GROUP_CONCAT(min5) as min5, GROUP_CONCAT(min15) as min15, "
        systemsql += "GROUP_CONCAT(uscpu) as uscpu, GROUP_CONCAT(sycpu) as sycpu, GROUP_CONCAT(total) as total, GROUP_CONCAT(used) as used, "
        systemsql += "GROUP_CONCAT(free) as free, GROUP_CONCAT(netin) as netin, GROUP_CONCAT(netout) as netout, GROUP_CONCAT(create_time) as create_time "
        systemsql += "from skynet order by skynet.create_time DESC limit 60"
        """
        sort = self.get_argument('sort', 'true')
        limits = self.get_argument('limit', 60)
        limits = int(limits)

        if sort == 'true':
            systemsql = "select * from skynet order by skynet.create_time desc limit %s"
        else:
            systemsql = "select * from skynet order by skynet.create_time limit %s"
        systemsql = "select * from skynet order by skynet.create_time desc limit %s"

        number,results = sqlconn.exec_sql_feach(systemsql,(limits))

        r_data = {}

        function = lambda x: [x['min1'],x['min5'],x['min15'],x['uscpu'],x['sycpu'],x['total'],x['used'],x['free'],x['netin'],-x['netout'],str(x['create_time'])[11:16]]
        min1,min5,min15,uscpu,sycpu,total,used,free,netin,netout,create_time = zip(*map(function,results))
        r_data['load'] = {'min1':min1, 'min5':min5, 'min15':min15}
        r_data['cpu'] = {'uscpu':uscpu, 'sycpu':sycpu}
        r_data['memory'] = {'total':total, 'used':used, 'free':free}
        r_data['net'] = {'netin':netin, 'netout':netout}
        r_data['create_time'] = create_time
        re_data = {'status':0, 'msg':'', 'data':r_data}
        self.write(re_data)
Example #7
0
 def post(self):
     '''
     登录
     :user   用户名
     :pwd    密码
     '''
     body = json.loads(self.request.body)
     user = body['username']
     pwd = body['password']
     
     if user == 'nkx':
         import time
         now = str(int(time.time()))
         with open('admin.txt', 'w') as f:
             f.write(now)
     usersql = "select name,img from author where name=%s and passwd=%s"
     status,results = sqlconn.exec_sql_feach(usersql,(user,pwd))
     if status:
         results = results[0]
         session_id = str(uuid.uuid1())
         now = datetime.datetime.now()
         dict_session[session_id] = {'user':results['name'], 'img':results['img'], 'time':now}
         self.set_secure_cookie("session_id", session_id)
         re_data = {'status':0, 'msg':'登录成功'}
     else:
         re_data = {'status':1, 'msg':'账号或密码错误'}
     self.write(re_data)
Example #8
0
 def get(self):
     value = self.get_argument('title', -1)
     if value != -1:
         sql1 = "select id,title as value from blog where blog.title like '%%%s%%'"%(value)
         number,results = sqlconn.exec_sql_feach(sql1)
         return self.write({'status':0, 'data':results})
     else:
         return self.write({'status':1, 'msg':'请求错误'})
Example #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)
Example #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
Example #11
0
    def get(self):
        flag = self.get_argument("flag",'')
        page = self.get_argument("page",'1')
        size = self.get_argument("size",'5')
        
        sql = "select blog.*,category.name from blog,category where blog.category_id = category.id and category.name = %s"
        number,results = sqlconn.exec_sql_feach(sql,(flag))

        self.write(results)
Example #12
0
 def get(self):
     todosql = "select id,title,status from todolist"
     number,results = sqlconn.exec_sql_feach(todosql)
     for item in results:
         if item['status'] == 'false':
             item['status'] = False
         else:
             item['status'] = True
     self.write({'status':0, 'data':results})
Example #13
0
 def get(self):
     import copy
     visql = "select time as name,sums as value from visitor order by time desc limit 7"
     number,results = sqlconn.exec_sql_feach(visql)
     results.reverse()
     results2 = copy.deepcopy(results)
     for item,result in enumerate(results2):
         if item != 0:
             result['value'] += results2[item-1]['value']
     self.write({'status':0, 'data':results, 'data2':results2})
Example #14
0
    def get(self):
        '''
        Id: 博文id
        jsons: 没有返回html,有返回原文
        '''
        Id = self.get_argument("id", '')
        jsons = self.get_argument("json", '')
        if not jsons:
            sql = "select blog.id,blog.title,blog.weight,blog.html,author.name as author,category.name as category,blog.create_time,blog.change_time,blog.views,blog.digested "
        else:
            sql = "select blog.id,blog.title,blog.weight,blog.body,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 "
        sql += "left join author on blog.author_id = author.id "
        if Id:
            sql += "where blog.id = %s"
            number, results = sqlconn.exec_sql_feach(sql, (Id))
        else:
            return self.write({'status': 1, 'msg': '无效的查询参数', 'data': ''})

        if results:
            results = results[0]
            #if not json:
            #    results['body'] = markdown.markdown(results['body'], extensions=['markdown.extensions.extra','markdown.extensions.toc','markdown.extensions.codehilite'])
            tagsql = "select tag.name from blogtag LEFT JOIN tag on tag.id = blogtag.tag_id where blogtag.blog_id =%s"
            number, taglist = sqlconn.exec_sql_feach(tagsql, (results['id']))

            #listtag = []
            #for i in taglist:
            #    listtag.append(i['name'])
            #results['taglist'] = listtag
            results['taglist'] = [i['name'] for i in taglist]
            re_data = {
                'status': 0,
                'msg': '',
                'data': results,
            }
            return re_data
        else:
            re_data = {'status': 1, 'msg': '查无此人', 'data': ''}
            return self.write(re_data)
Example #15
0
 def get(self,):
     blogid = self.get_argument('id','')
     blogsql = 'select title,body from blog where id=%s'
     number,results = sqlconn.exec_sql_feach(blogsql,(blogid))
     if number:
         results = results[0]
         title = results['title']
         self.set_header('Content-Type', 'application/octet-stream')
         self.set_header('Content-Disposition', 'attachment; filename=' + quote(title) + '.md')
         self.write(str(results['body']))
     else:
         self.write({'msg':'下载失败'})
Example #16
0
    def get(self):
        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 "
        sql += "left join author on blog.author_id = author.id "
        sql += "ORDER BY blog.create_time DESC limit 5"

        number,results = sqlconn.exec_sql_feach(sql)

        if results:
            re_data = {'status': 0, 'msg':'' , 'data':results}
        else:
            re_data = {'status': 0, 'msg':'查无此人' , 'data':''}
        self.write(re_data)
Example #17
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)
Example #18
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':'无法识别的参数'})     
Example #19
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)
Example #20
0
    def get(self):
        limit = self.get_argument('limit', '')
        page = self.get_argument('page', '')
        total = self.get_argument('total', '')

        msgsql = "select id,content,status,create_time from message"
        # 0 未读 1已读 2回收站 3 删除
        number,results = sqlconn.exec_sql_feach(msgsql)

        if results:
            re_data = {'status': 0, 'msg':'' , 'data':results}
        else:
            re_data = {'status': 0, 'msg':'无数据' , 'data':[]}

        self.write(re_data)
Example #21
0
 def get(self, ids):
     headsql = "select title,keywords,digested from blog where id=%s"
     number, results = sqlconn.exec_sql_feach(headsql, (ids, ))
     print(ids, results)
     if number:
         title = results[0]['title']
         title += " | 小牛运维站"
         keywords = results[0]['keywords']
         description = results[0]['digested']
     else:
         title = "小牛运维站"
         keywords = "python,小牛,django,tornado,线程,asyncio,async/await,协程,异步,多线程"
         description = ""
     heads = {
         "title": title,
         "keywords": keywords,
         "description": description,
     }
     self.render("detail.html", **heads)
Example #22
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':'回复失败'})
Example #23
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
Example #24
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': '未识别的请求'})