# import lock as lock
from threading import Lock
import pymysql
from flask import Flask,request,jsonify
from flask_cors import CORS
# 数据库连接
db = pymysql.connect(host="127.0.0.1",user="root",password="root",db="test",cursorclass=pymysql.cursors.DictCursor)
# 设置数据库游标,使其指向数据库
cursor = db.cursor()
# 后端服务启动
app = Flask(__name__)
# 跨域问题
# 代理服务器问题
CORS(app,resource=r'/*')
# login查询全部用户列表
@app.route("/login/list",methods=['post','get'])
def login_list():
if request.method == "POST":
# username = request.form.get("username")
# print("收到用户名"+str(username))
# 执行SQL语句
cursor.execute("SELECT id,username,role,ctime FROM login")
data = cursor.fetchall();
# 取回全部记录 fetchone()取回一条记录
temp={}
result=[]
if(data!=None):
for i in data:
temp["id"]=i[0]
temp["username"]=i[1]
temp["role"]=i[2]
temp["ctime"]=i[3]
result.append(temp.copy())
print("result",result)
return jsonify(result)
else:
print("result:null")
return jsonify([])
#login查询用户是否注册即数据库中是否有该用户
@app.route("/login/login",methods=['post','get'])
def login_login():
if request.method=="POST":
# username = request.form.get("username")
# password = request.form.get("password")
formData = request.get_json("username")
print("formData",formData)
username=formData["username"]
password=formData["password"]
cursor.execute("SELECT id,username,role,ctime FROM login WHERE username=\""+str(username)+"\" and password=\""+str(password)+"\"")
data = cursor.fetchone();
print(data)
if(data!=None):
loginData={"id":data[0],"username":str(data[1]),"role":str(data[2]),"ctime":str(data[3]),"token":str(data[3])+str(data[0])}
print("loginData",loginData)
return jsonify(loginData)
else:
print("result:NULL")
return "登陆失败!请检查是否注册及账号密码"
# login添加用户
@app.route("/login/add",methods=['post','get'])
def login_add():
if request.method == "POST":
# username = request.form.get("username")
# password = request.form.get("password")
# role = request.form.get("role")
data = request.get_json("username")
username=data["username"]
password =data["password"]
role = data["role"]
print(username,password,role)
if role==1|role==0:
try:
# 执行SQL语句
cursor.execute("INSERT INTO login(username,password,role) VALUES(\""+str(username)+"\",\""+str(password)+"\","+str(role)+")")
# data = cursor.fetchall();
# 向数据库提交执行SQL语句————凡是涉及修改数据库的操作,均需要db.commit()
db.commit()
print("add a new user successful")
return "add a new user successful"
except Exception as e:
print("add a new user failed:",e)
# 回滚操作
db.rollback()
return "0"
else:
return "权限错误!"
# login删除用户
@app.route("/login/delete",methods=['post','get'])
def login_delete():
if request.method == "POST":
id = request.form.get("id")
# print("收到用户名"+str(username))
try:
# 执行SQL语句
cursor.execute("DELETE FROM login WHERE id="+str(id))
# data = cursor.fetchall();
db.commit()
print("delete a new user successful")
return "1"
except Exception as e:
print("delete a new user failed:",e)
# 回滚操作
db.rollback()
return "-1"
# login更新用户密码
@app.route("/login/updatePass",methods=['post','get'])
def login_updatePass():
if request.method == "POST":
id = request.form.get("id")
password = request.form.get("password")
# print("收到用户名"+str(username))
try:
# 执行SQL语句
cursor.execute("UPDATE login SET password=\""+str(password)+"\" where id="+str(id))
# data = cursor.fetchall();
db.commit()
print("updatePass successful")
return "1"
except Exception as e:
print("updatePass failed:",e)
# 回滚操作
db.rollback()
return "-1"
# favorite 查询收藏列表
@app.route("/favorite/list",methods=['post','get'])
def favorite_list():
if request.method == "POST":
# username = request.form.get("username")
# print("收到用户名"+str(username))
# 执行SQL语句
cursor.execute("SELECT id,wname,wurl,uid,type,count,ctime FROM favorite")
data = cursor.fetchall();
# 取回全部记录 fetchone()取回一条记录
temp={}
result=[]
if(data!=None):
for i in data:
temp["id"]=i[0]
temp["wname"]=i[1]
temp["wurl"]=i[2]
temp["uid"]=i[3]
temp["type"]=i[4]
temp["count"]=i[5]
temp["ctime"]=i[6]
result.append(temp.copy())
print("result",result)
return jsonify(result)
else:
print("result:null")
return jsonify([])
# favorite添加收藏
@app.route("/favorite/add",methods=['post','get'])
def favorite_add():
if request.method == "POST":
wname = request.form.get("wname")
wurl = request.form.get("wurl")
uid = request.form.get("uid")
type = request.form.get("type")
# print("收到用户名"+str(username))
try:
# 执行SQL语句
cursor.execute("INSERT INTO favorite(wname,wurl,uid,type) VALUES(\""+str(wname)+"\",\""+str(wurl)+"\",\""+str(uid)+"\","+str(type)+")")
# data = cursor.fetchall();
# 向数据库提交执行SQL语句————凡是涉及修改数据库的操作,均需要db.commit()
db.commit()
print("add a new favorite successful")
return "1"
except Exception as e:
print("add a new favorite failed:",e)
# 回滚操作
db.rollback()
return "-1"
# favorite删除收藏
@app.route("/favorite/delete",methods=['post','get'])
def favorite_delete():
if request.method == "POST":
id = request.form.get("id")
# print("收到用户名"+str(username))
try:
# 执行SQL语句
cursor.execute("DELETE FROM favorite WHERE id="+str(id))
# data = cursor.fetchall();
db.commit()
print("delete favorite successful")
return "1"
except Exception as e:
print("delete favorite failed:",e)
# 回滚操作
db.rollback()
return "-1"
# favorite点击次数更新
@app.route("/favorite/updateCount",methods=['post','get'])
def favorite_updateCount():
if request.method == "POST":
id = request.form.get("id")
# password = request.form.get("password")
# print("收到用户名"+str(username))
try:
# 执行SQL语句
cursor.execute("UPDATE favorite SET count=count+1 where id="+str(id))
# data = cursor.fetchall();
db.commit()
print("updateCount successful")
return "1"
except Exception as e:
print("updateCount failed:",e)
# 回滚操作
db.rollback()
return "-1"
# 返回book数组信息
@app.route("/books/list",methods=['post','get'])
def books_list():
db = pymysql.connect(host="127.0.0.1", user="root", password="root", db="test",
cursorclass=pymysql.cursors.DictCursor)
if request.method == "POST":
# username = request.form.get("username")
# print("收到用户名"+str(username))
# 执行SQL语句
cursor.execute("SELECT * FROM novallist")
data = cursor.fetchall();
print(data)
# 取回全部记录 fetchone()取回一条记录
# temp={}
# result=[]
if(data!=None):
# for i in data:
# temp["bookid"]=i[0]
# temp["bookname"]=i[1]
# temp["bookauthor"]=i[2]
# temp["readCount"]=i[3]
# temp["star"]=i[4]
# temp["participateNum"]=i[5]
# temp["participate"]=i[6]
# temp["type"]=i[7]
# temp["updatetime"]=i[8]
# temp["booktype"]=i[9]
# result.append(temp.copy())
# print("result",result)
return jsonify(data)
else:
print("result:null")
return jsonify([])
# 返回收藏之星
@app.route("/books/star",methods=['post','get'])
def book_star():
db = pymysql.connect(host="127.0.0.1", user="root", password="root", db="test",
cursorclass=pymysql.cursors.DictCursor)
if request.method == "POST":
# username = request.form.get("username")
# print("收到用户名"+str(username))
# 执行SQL语句
cursor.execute("SELECT * FROM novallist ORDER BY star DESC")
stardata = cursor.fetchall();
print(stardata)
# 取回全部记录 fetchone()取回一条记录
# startemp={}
# starresult=[]
if(stardata!=None):
# for i in stardata:
# startemp["bookid"]=i[0]
# startemp["bookname"]=i[1]
# startemp["bookauthor"]=i[2]
# startemp["booktype"]=i[3]
# startemp["readCount"]=i[4]
# startemp["star"]=i[5]
# startemp["participateNum"]=i[6]
# startemp["participate"]=i[7]
# startemp["bookurl"]=i[8]
# startemp["type"]=i[9]
# startemp["updatetime"]=i[10]
# startemp.append(startemp.copy())
# print("result",starresult)
return jsonify(stardata)
else:
print("result:null")
return jsonify([])
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8811)
db.close()
print("GoodBye")
py后端接口
最新推荐文章于 2023-06-02 10:03:37 发布