Ich erhalte die folgende Fehlermeldung, wenn ich versuche, Daten zu meiner Flask Form einreichen:Flask Fehler: „Methode nicht erlaubte Das Verfahren ist für die angeforderte URL nicht erlaubt“
Method Not Allowed The method is not allowed for the requested URL.
Ich denke, die Frage ist, in der return redirect(url_for('database'))
mache ich. Ich habe auch versucht. Ich versuche, die Datenbankseite aufzurufen, sobald Formulareinträge an die Datenbank gesendet wurden.
Relevante Teile meines Codes sind wie folgt:
@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 ist ...
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>
und database.html ...
THIS IS THE QUERY:
{{query}}
Danke, das hat den Job gemacht. Obwohl es sich aus irgendeinem Grund nicht mehr um die Datenbank kümmert. –
Das liegt daran, dass die Funktionalität zum Übergeben der Datenbank in der Funktion "entry_page" liegt, während Sie das Post-Formular für die Weiterleitung an die Datenbankfunktion verwenden. Sie können diese Logik aus der Funktion entry_page verschieben und in die Datenbankfunktion einfügen – Wondercricket
Danke nochmal, das hat funktioniert! Ich bin mir nicht sicher, warum ich das verstehe. Ich bitte darum, Daten an die Datenbank zu senden, bevor die Weiterleitung erfolgt. Dies funktioniert, wenn ich auf eine andere Seite als '/ database' umadressiere. Wie auch immer, schätze deine Hilfe. –