使用 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 的帮助!
这是一个用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 的帮助!