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

Delete a task stored in SQL database through html form using Python

这是一个用Python编写的网络应用程序,用于添加和删除任务。

这是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")

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

@app.route("/delete", methods=["GET", "POST"])
@login_required
def delete():

    if request.method == "POST":
        db.execute("DELETE FROM history (add, quantity, user_id) VALUES (:add, :quantity, :user_id);", add=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])

此删除功能导致内部服务器错误。这有什么问题吗?

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

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

谢谢,RobinFrcd 的帮助!