如何使用 FlaskApp 将表单数据从一个页面传递到另一个页面

How To Pass Form Data from One Page To Another using FlaskApp

我有一个表格 "form.html",用户可以在其中填写姓名、地址、手机号码和图片等信息。我有三个 html 页 "info.html"、"success.html" 和 "failure.html"

我要求用户付款,所以 info.html 会显示用户填写的信息,稍后他会付款,如果付款成功,用户将被重定向到 "success.html",如果付款失败,用户将被重定向到 "failure.html"

三个页面都一样,只有一行不同,就是付款状态"pending"或"success"

我可以将用户填写的信息打印到 "info.html",但如果需要,我想在 success.html 或 failure.html 上打印相同的信息。

routes.py :

@app.route('/form', methods=['GET', 'POST'])
def form():
  global onlineAppForm, data
  onlineAppForm = RegForm()
  name = request.form['name'].strip()
  father = request.form['father_name'].strip()  
  mother = request.form['mother_name'].strip()
  address1 = request.form['txtAddress1'].strip()
  data = {'name' : name, 'father' : father, 'mother' : mother, 'address1' : address1}
  return render_template("apply1.html", data=data, form=onlineAppForm)

我试过这样做,但当然行不通。那我该怎么做。

@app.route('/success')
def success():
  return render_template('success.html', data=data, form=onlineAppForm)

您将必须使用 SQLAlchemy 设置数据库并创建模型。表单只是收集创建模型所需的数据。这是步骤的演练。

  1. 表单提交到端点
  2. 创建模型实例并加载表单数据
  3. 保存到数据库并重定向到成功页面(传递对象标识符)
  4. 在成功路由上查询对象并传递给模板进行渲染

我已经编写了一个示例,我相信它可以满足您的需求。不想编写模板,但我相信它应该可以工作。

http://hastebin.com/puputugune.py

另请查看 https://flask-wtf.readthedocs.io/en/latest/ 以获得更多帮助

编辑

在模板上,您可以像在视图中一样访问模型属性。

<!-- success.html -->
<ul>
    <li>{{ person.id }}</li>
    <li>{{ person.first_name }}</li>
    <li>{{ person.last_name }}</li>
    <li>{{ person.email }}</li>
</ul>