0

我有一个表格“form.html”,用户可以在其中填写他的信息,如姓名、地址、手机号码和图像。我有三个 html 页面“info.html”、“success.html”和“failure.html”

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

三页都一样,只有一行不同,支付状态“待处理”或“成功”

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

路线.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)
4

1 回答 1

0

您将不得不使用 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>
于 2016-08-18T06:42:21.960 回答