15 Flask表单处理之处理表单的内容

在上一篇教程中,我们讨论了如何使用 Flask-WTF 创建表单类,这为我们之后处理表单提交的数据奠定了基础。在本篇中,我们将深入探讨如何接收和处理提交的表单内容。这是构建 Web 应用程序的重要组成部分,因为用户输入往往是应用程序的核心。

接收表单数据

在 Flask 中,当用户提交表单时,数据会通过 HTTP POST 请求发送到服务器。我们可以在视图函数中通过 request 对象来接收这些数据。首先,我们需要导入 Flask 和相关模块:

1
2
3
4
from flask import Flask, render_template, request, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

然后,我们可以定义一个简单的 Flask 应用程序和表单类:

1
2
3
4
5
6
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'

class MyForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
submit = SubmitField('Submit')

接下来,我们添加一个视图函数来处理表单显示和提交逻辑:

1
2
3
4
5
6
7
@app.route('/form', methods=['GET', 'POST'])
def form():
form = MyForm()
if form.validate_on_submit(): # 验证表单是否有效
username = form.username.data # 获取表单数据
return redirect(url_for('success', username=username)) # 重定向到成功页面
return render_template('form.html', form=form)

在上面的代码中,当表单被提交并通过验证后,我们可以使用 form.username.data 获取表单中的用户名。

处理表单内容

在实际应用中,处理表单内容通常涉及将数据存储到数据库中、发送邮件、或执行其他逻辑。在我们的案例中,我们简单地将用户名重定向到一个成功页面。

我们需要一个成功视图来显示处理后的结果:

1
2
3
@app.route('/success/<username>')
def success(username):
return f'Hello, {username}! Your form has been submitted successfully.'

表单页面模板

为了完整地运行这个例子,我们需要一个简单的 HTML 模板来呈现我们的表单。创建一个 form.html 文件,并添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Form</title>
</head>
<body>
<h1>Input your username</h1>
<form method="POST">
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}<br>
{% for error in form.username.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>{{ form.submit() }}</p>
</form>
</body>
</html>

在这个模板中,我们使用了 Jinja2 模板引擎来渲染表单。{{ form.hidden_tag() }} 用于生成 CSRF 保护。表单提交后,用户将在成功页面看到他们输入的用户名。

总结

在本节中,我们学习了如何处理 Flask 表单提交的内容。通过在视图函数中接收表单数据、进行简单的处理,并将结果反馈给用户,我们搭建了一个基础的表单处理流程。在下一篇教程中,我们将聚焦于表单验证,以确保用户输入的数据有效和安全。这样,我们的应用将更加健壮和可靠。

保持关注,下一篇将深入讨论如何使用 Flask-WTF 进行表单验证!

15 Flask表单处理之处理表单的内容

https://zglg.work/flask-zero/15/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论