This is a web app written in Python
to add and delete tasks.
This is the add_tasks function:
x
@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")
Then my delete function takes only the stored items from SQL
database to SELECT
, in order to erase them.
@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])
This delete function leads to an internal server error. What´s wrong about it?
Advertisement
Answer
Finally, the POST
part of my DELETE
function was wrong. I´ve managed to find this solution:
db.execute("DELETE FROM history WHERE user_id=:user_id and add=:add;", user_id=session["user_id"], add=add)
Thanks, RobinFrcd for your help!