Ich lerne Flasche. Ich wollte damit beginnen, eine einfache Formularauswahlseite zu erstellen. Meine Absicht ist, dass der Benutzer die Option auswählt und sie dann auf einer anderen Seite unter Verwendung von GET
anzeigt. Ich versuche den folgenden Code.Mit 'GET', um ausgewählte Optionen in Flask anzuzeigen
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
@app.route('/')
def search():
return render_template('select_doc.html')
@app.route('/view_doc/<k>')
def view_doc(k):
return render_template('view_doc.html',k=k)
if __name__ == '__main__':
app.run(debug=True)
Das ist mein select_doc.html
{% block content %}
<body>
<h1>Pick your plag</h1>
<form action='/view_doc'>
<select name="k">
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type='submit' value='Select'>
</form>
</body>
{% endblock content %}
</html>
Das ist mein view_doc.html
<html>
{% block content %}
<body>
<br>{{ k }}<br>
</body>
{% endblock content %}
</html>
jedoch ist, dass ich einen Fehler sagen 404 not found
. Das ist mein run.py. Was mache ich falsch?
Das Attribut 'Aktion' sollte mit der im Dekorator der Funktion 'view_doc' angegebenen Route übereinstimmen, also' /results'...etc. Versuchen Sie das, dann prüfen wir, was sonst noch falsch ist. – fips
Sorry, änderte es jetzt. Aber bekomme immer noch die 404 nicht gefunden –
Ihre Route erfordert '' Parameter, aber es wird nicht durch das Formular gesendet. Wenn Sie submit mit 'method =" get "' drücken, was der Standard für das Formular ist, lautet die Anfrage-URL '/ results? K = value'. Entweder du entfernst entweder "" von deiner Route und entpackst sie aus der Querystring oder du schreibst js, um den Wert auf die URL wie folgt zu setzen: '/ results/value'. Die einfachste Option ist die erste, also können Sie 'request.args.get ('k')' machen, um 'k' zu extrahieren und in' render_template' zu verwenden. –
fips