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")
# 设置数据库游标,使其指向数据库
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)
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 "添加失败"
# 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"
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8811)
db.close()
print("GoodBye")
先不加证明地给出结论
request.values = requst.args + request.form