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)