📌  相关文章
📜  Flask¢将表单数据发送到模板(1)

📅  最后修改于: 2023-12-03 15:15:05.964000             🧑  作者: Mango

用 Flask 将表单数据发送到模板

在使用 Flask 开发 Web 应用时,我们经常需要从用户提交的表单中获取数据,并将这些数据传递给模板进行处理和展示。Flask 提供了简单的方法来处理表单数据,并将其发送到模板中进行渲染。

下面是一些步骤,介绍了如何使用 Flask 将表单数据发送到模板:

步骤 1: 创建 Flask 应用

首先,我们需要创建一个 Flask 应用。可以使用以下代码创建一个最基本的 Flask 应用:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    return render_template('form.html')

if __name__ == '__main__':
    app.run()

这个应用定义了一个根路由 / 并将请求传递给 home 函数进行处理。home 函数是一个视图函数,它返回一个渲染了 form.html 模板的响应。

步骤 2: 创建表单

接下来,我们需要创建一个 HTML 表单来接收用户输入的数据。可以将以下代码添加到名为 form.html 的模板中:

<!DOCTYPE html>
<html>
<head>
  <title>My Form</title>
</head>
<body>
  <h1>My Form</h1>
  
  <form action="{{ url_for('process_form') }}" method="post">
    <input type="text" name="name" placeholder="Your Name" required><br>
    <input type="email" name="email" placeholder="Your Email" required><br>
    <input type="submit" value="Submit">
  </form>
</body>
</html>
步骤 3: 处理表单数据

下一步是处理表单数据。可以在 Flask 应用中添加一个新的路由来处理表单提交的数据。将以下代码添加到应用中:

from flask import request

@app.route('/process', methods=['POST'])
def process_form():
    name = request.form['name']
    email = request.form['email']
    
    # 执行其他数据处理逻辑
    
    return render_template('result.html', name=name, email=email)

这个新路由 /process 会接收来自 HTML 表单的 POST 请求,并从 request.form 字典中获取表单数据。然后,我们可以对数据进行处理,并将其传递给 result.html 模板进行渲染。

步骤 4: 渲染结果模板

最后一步是渲染结果模板。在名为 result.html 的模板中,我们可以使用传递过来的数据来展示结果。以下是一个简单的例子:

<!DOCTYPE html>
<html>
<head>
  <title>Form Submission Result</title>
</head>
<body>
  <h1>Form Submission Result</h1>
  
  <p>Name: {{ name }}</p>
  <p>Email: {{ email }}</p>
</body>
</html>

这个模板使用了 Flask 提供的模板语法来动态地显示传递过来的数据。

运行应用

现在,我们可以运行应用并在浏览器中访问根路由 / 来看到表单页面。填写表单后,提交数据会被发送到 /process 路由进行处理,并渲染结果页面。

这是使用 Flask 将表单数据发送到模板的基本过程。根据实际需求,还可以进行更多的数据处理和模板渲染操作。Flask 提供了许多有用的功能和扩展,可以帮助我们更方便地处理表单数据和页面渲染。