/ / Anzeige ausgewählter Formelemente auf einer anderen Seite mit Flask - python, html, twitter-bootstrap-3, flask

Zeigen Sie ausgewählte Formularelemente auf einer anderen Seite mit Flask - python, html, twitter-bootstrap-3, flask an

Ich verwende Flask 0.12 mit Python 3.6, um eine einfache App zu erstellen, die ausgewählte Elemente auf einer anderen Seite anzeigt, wenn auf die Schaltfläche zum Senden geklickt wird.

Die Haupt-Flask-App ist in app.py wie:

from flask import Flask, render_template
app = Flask(__name__)

@app.route("/")
def index():
return render_template("index.html")

@app.route("/result", methods=["POST"])
def result():
return render_template("result.html")

Dies rendert die folgende Webseite mit Bootstrap:

<h1>Example Page</h1>

<p>Choose the options in the form below then submit your selections.</p>

<form action="">
<div class="form-group">
<label for="vehicle">Vehicle</label>
<select id="vehicle" class="form-control">
<option>truck</option>
<option>car</option>
<option>van</option>
</select>
</div>

<div class="form-group">
<label for="year">Year</label>
<select id="year" class="form-control">
<option>1972</option>
<option>1999</option>
<option>2010</option>
</select>
</div>
</form>

<br>

<button type="submit" class="btn btn-default">Submit</button>

Wie kann ich Flask dazu bringen, die ausgewählten Gegenstände in meinem zu zeigen? results.html Vorlage, wenn auf die Schaltfläche "Senden" geklickt wird?

Antworten:

3 für die Antwort № 1

Sie müssen einige Änderungen im Formular vornehmen, um auf der Ergebnisseite angezeigt zu werden.

  1. Sie müssen die Aktions-URL und die Methode in Form hinzufügen

    <form action="/result" method="post">
    
  2. Fügen Sie einen Namen in das Auswahlfeld ein

    <select id="vehicle" class="form-control" name="vehicle">
    <select id="year" class="form-control" name="year">
    
  3. Verwenden Sie die Flaschenanforderung, um die Formularwerte abzurufen

    from flask import request
    
    # inside your POST view
    vehicle = request.form.get("vehicle")
    year = request.form.get("year")
    return render_template("result.html", vehicle=vehicle, year=year)
    
  4. Schließlich in Ihrem Ergebnis HTML-Seite diese hinzufügen ...

    {{ vehicle }} {{ year }}