This is a web app written in Python
to add and delete tasks.
This is the add_tasks function:
@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!