flask后端代码及【接收POST数据的三种格式探究】

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

在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/w55100/article/details/110943689

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

就躺了吧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值