使用Flask在另一页中显示选定的表单项

时间:2017-06-22 03:50:13

标签: python html twitter-bootstrap-3 flask

我正在使用带有Python 3.6的Flask 0.12创建一个简单的应用程序,当单击提交按钮时,该应用程序将在另一个页面中显示所选项目。

主要的Flask应用程序位于app.py中:

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')

这使用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>

如果点击提交按钮,如何让Flask在我的results.html模板中显示所选项?

1 个答案:

答案 0 :(得分:3)

您必须在表单中进行一些更改才能在结果页面中显示。

  1. 您必须在表单中添加操作网址和方法

    <form action="/result" method="post">
    
  2. 在选择字段中添加名称

    <select id="vehicle" class="form-control" name="vehicle">
    <select id="year" class="form-control" name="year">
    
  3. 使用flask请求获取表单值

    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. 最后在你的结果html页面添加这些......

    {{ vehicle }} {{ year }}