简体   繁体   中英

How to delete a comment from the comment section in flask

I have a comment section and I want to allow users to delete their comments, however when I click the delete button the comment doesn't get delete, and over that a new comment with nothing get add.

Here is my python code. When I tried to print "delete" I got none in my terminal window

@app.route("/deletecomment", methods=["GET", "POST"])
@login_required
def deletecomment():
 delete = request.args.get("delete")
 print(delete)
#if the method is get
 if request.method == "GET":
#testing purpose
  print("vvv")

  print(delete)
#delete the comment
  comments = db.execute("DELETE FROM comment WHERE comment=?",delete)
  return redirect (url_for("addcomment"))

Here is my html. Is it bad to have a form inside another form?

<form action="/comment" method="get">
<div class="row bootstrap snippets bootdeys">
<div class="col-md-8 col-sm-12">
    <div class="comment-wrapper">
        <div class="panel panel-info">
            <div class="panel-heading">
                Comment panel
            </div>
            <div class="panel-body">
                <textarea name="comment" class="form-control" placeholder="write a comment..." rows="3"></textarea>
                <br>
                <button type="submit" class="btn btn-info pull-right">Post</button>
                <div class="clearfix"></div>
                <hr>
                {% for comments in comments %}
                <ul class="media-list">
                    <!--<button type="submit" class="btn btn-danger">Delete</button>-->
                    <li class="media">
                        <a href="#" class="pull-left">
                            <img src="https://bootdey.com/img/Content/user_1.jpg" alt="" class="img-circle">
                        </a>

                        <div class="media-body">
                            <!--<button type="submit" class="btn btn-danger">Delete</button>-->
                            <span class="text-muted pull-right">
                            </span>
                            <!--<button type="submit" class="btn btn-danger">Delete</button>-->
                            <strong class="text-success">{{comments.user}}</strong>
                            <form action="/deletecomment" method="get">
                            <p name="delete">
                              {{comments.comment}}
                            </p>
                            <button id="but" type="submit" class="btn btn-danger">Delete</button>
                            </form>
                        </div>
                    </li>


                        </div>


                </ul>
                {% endfor %}

            </div>
        </div>
    </div>

</div>
</div>

</form>

Put the comment ID as a URL parameter in the action URL

<form action="/deletecomment?delete={{comment.id}}" method="get">

and change the controller to use the parameter as the ID in the query.

@app.route("/deletecomment", methods=["GET", "POST"])
@login_required
def deletecomment():
    #if the method is get
    if request.method == "GET":
        delete = request.args.get("delete")
        print(delete)
        #testing purpose
        print("vvv")

        print(delete)
        #delete the comment
        comments = db.execute("DELETE FROM comment WHERE id=?",delete)
        return redirect (url_for("addcomment"))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM