使用Python通过html表单删除存储在SQL数据库中的任务
Posted
技术标签:
【中文标题】使用Python通过html表单删除存储在SQL数据库中的任务【英文标题】:Delete a task stored in SQL database through html form using Python 【发布时间】:2020-09-29 17:01:01 【问题描述】:这是一个用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])
此删除功能会导致内部服务器错误。它有什么问题?
【问题讨论】:
如果你想安静,端点应该是一样的,但一个用POST
方法,另一个用DELETE
我知道,谢谢,我试图让它相似,但我无法让它工作(初学者问题)
好吧,你应该看看 SQL DELETE 语句:w3schools.com/sql/sql_delete.asp :)
谢谢,@RobinFrcd。我会看看并继续努力。 ;)
【参考方案1】:
最后,我的DELETE
函数的POST
部分是错误的。我设法找到了这个解决方案:
db.execute("DELETE FROM history WHERE user_id=:user_id and add=:add;", user_id=session["user_id"], add=add)
感谢RobinFrcd 的帮助!
【讨论】:
以上是关于使用Python通过html表单删除存储在SQL数据库中的任务的主要内容,如果未能解决你的问题,请参考以下文章