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':'传值错误'})
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':'无效参数'})
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':'无法识别的参数'})
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':'注册成功'})
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)
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)
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':'删除失败'})
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':'创建失败'})
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)
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
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
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':'回复失败'})
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)
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':'修改失败'})
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)
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
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': '未识别的请求'})