py后端接口

# 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")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就躺了吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值