I have two forms on in my template: one, to post something and the second, to activate file deletion on the server:
<div style="margin-bottom:150px;"> <h4>Delete</h4> <form method="post" action="/delete"> <div class="form-group"> <input type="hidden" name="delete_input"></input> </div> <button type="submit" class="btn btn-danger" id="btnSignUp">Delete</button> </form> </div> <div style="margin-bottom:150px;"> <h4>URLs</h4> <form method="post" action="/"> <div class="form-group"> <textarea class="form-control" rows="5" id="urls" name="url_area"></textarea> </div> <button type="submit" class="btn btn-primary" id="btnSignUp">Urls</button> </form> </div> My app.py looks like this:
@app.route("/") def main(): return render_template('index.html') @app.route('/', methods=['POST']) def parse_urls(): _urls = request.form['url_area'].split("\n") image_list = get_images(_urls) return render_template('index.html', images=image_list) @app.route('/delete', methods=['POST']) def delete_images(): file_list = [f for f in os.listdir("./static") if f.endswith(".png")] for f in file_list: os.remove("./static/" + f) image_list = [] conn = sqlite3.connect('_db/database.db') curs = conn.cursor() sql = "DROP TABLE IF EXISTS images" curs.execute(sql) conn.commit() conn.close() return render_template('index.html', images=image_list) Two issues:
- I get the form resubmission message when I reload the page after submitting the form
- I would like to have one url for everything
The way I see it, I need so use redirects to avoid the duplicate submission and after calling delete, I need to redirect to index.
How can I do this correctly?
I know about redirect and url_for, but how do I redirect to the same page?