使用Python删除通过html表单存储在SQL数据库中的任务

问题描述

这是用Python编写的Web应用程序,用于添加删除任务。

这是 add_tasks 函数

@app.route("/add",methods=["GET","POST"])
@login_required
def add():
    
    if request.method == "POST":                
        add = request.form.get("add")
        quantity = request.form.get("quantity")
        if not add:
            return apology("Please add an item")      
        
        db.execute("INSERT INTO history (add,quantity,user_id) VALUES (:add,:quantity,:user_id);",add=add,quantity=quantity,user_id=session["user_id"])

        return redirect("/")

    else:
        return render_template("add.html")

然后,我的删除函数仅将存储的项目从sql数据库移至SELECT,以便删除它们。

@app.route("/delete","POST"])
@login_required
def delete():

    if request.method == "POST":
        db.execute("DELETE FROM history (add,quantity=0,user_id=session["user_id"])

    else:
        rows = db.execute("SELECT add FROM history WHERE user_id=:user_id GROUP BY add",user_id=session["user_id"])
        return render_template("delete.html",add=[row["add"] for row in rows])

删除功能会导致内部服务器错误。怎么了?

解决方法

最后,我的POST函数的DELETE部分是错误的。我设法找到了解决方案:

db.execute("DELETE FROM history WHERE user_id=:user_id and add=:add;",user_id=session["user_id"],add=add)

感谢RobinFrcd的帮助!