I'm getting the following error whenever I try to submit data to my Flask form:
Method Not Allowed The method is not allowed for the requested URL.
I think the issue is in the return redirect(url_for('database'))
I'm doing. I've also tried return render_template('database.html)
too. I'm trying to call the database page once form entries have been submitted to the database.
Relevant parts of my code are as follows:
@app.route('/entry', methods=['GET', 'POST']) def entry_page(): if request.method == 'POST': date = request.form['date'] title = request.form['blog_title'] post = request.form['blog_main'] post_entry = models.BlogPost(date = date, title = title, post = post) db.session.add(post_entry) db.session.commit() return redirect(url_for('database')) else: return render_template('entry.html') @app.route('/database') def database(): query = [] for i in session.query(models.BlogPost): query.append((i.title, i.post, i.date)) return render_template('database.html', query = query)
entry.html is...
THIS IS THE BLOG ENTRY PAGE blog: <html> <form action='/database' method = "post"> date<input name = "date" type = "text" class="text"> title<input name = "blog_title" type = "text" class="text"> main<input name = "blog_main" type = "text" class="text"> <input type = "submit"> </form> </html>
and database.html...
THIS IS THE QUERY: {{query}}
What is happening here is that database route does not accept any url methods.
I would try putting the url methods in the app route just like you have in the entry_page function:
@app.route('/entry', methods=['GET', 'POST']) def entry_page(): if request.method == 'POST': date = request.form['date'] title = request.form['blog_title'] post = request.form['blog_main'] post_entry = models.BlogPost(date = date, title = title, post = post) db.session.add(post_entry) db.session.commit() return redirect(url_for('database')) else: return render_template('entry.html') @app.route('/database', methods=['GET', 'POST']) def database(): query = [] for i in session.query(models.BlogPost): query.append((i.title, i.post, i.date)) return render_template('database.html', query = query)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With