16 Flask GET 和 POST 请求处理

16 Flask GET 和 POST 请求处理

在使用 Flask 开发 web 应用时,处理用户的请求是至关重要的。本文将介绍如何处理 GETPOST 请求,并结合案例进行详细讲解。

GET 请求

GET 请求通常用于从服务器获取数据。我们可以通过 Flask 的路由功能处理 GET 请求。

示例:处理 GET 请求

下面是一个简单的 Flask 应用程序,它处理 GET 请求并返回一个欢迎消息:

1
2
3
4
5
6
7
8
9
10
11
from flask import Flask, request

app = Flask(__name__)

@app.route('/welcome', methods=['GET'])
def welcome():
name = request.args.get('name', 'Guest')
return f'Welcome, {name}!'

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

在这个例子中,我们定义了一个路由 /welcome,当用户通过 GET 请求访问这个路由时,我们从查询参数中获取 name,如果没有提供 name,则默认值为 Guest

测试 GET 请求

你可以使用浏览器或者 curl 命令来测试这个 GET 请求:

1
curl "http://127.0.0.1:5000/welcome?name=Alice"

响应将会是:

1
Welcome, Alice!

如果你不提供 name 参数,如下所示:

1
curl "http://127.0.0.1:5000/welcome"

响应将会是:

1
Welcome, Guest!

POST 请求

POST 请求通常用于向服务器发送数据,最常见的用于表单提交。

示例:处理 POST 请求

接下来我们会创建一个简单的表单,用户可以通过这个表单提交数据。我们将处理 POST 请求,并返回用户提交的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from flask import Flask, request, render_template_string

app = Flask(__name__)

# 简单的HTML表单
FORM_HTML = '''
<form method="POST" action="/submit">
<input type="text" name="username" placeholder="Enter your name" required>
<input type="submit" value="Submit">
</form>
'''

@app.route('/')
def index():
return render_template_string(FORM_HTML)

@app.route('/submit', methods=['POST'])
def submit():
username = request.form['username']
return f'Thank you, {username}, for your submission!'

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

在这个例子中,我们定义了一个路由 /,它返回一个 HTML 表单。在用户提交表单时,它将发送一个 POST 请求到 /submit 路由,我们在这个路由中处理用户提交的数据。

测试 POST 请求

  1. 首先在浏览器中打开 http://127.0.0.1:5000/
  2. 输入你的名字,然后点击提交。

你将会看到类似下面的响应:

1
Thank you, [你的名字], for your submission!

结论

通过上述的案例,我们学习了如何在 Flask 中处理 GETPOST 请求。使用 request 对象,我们可以轻松访问用户提交的数据。掌握这两种基本的请求方式是构建 web 应用程序的基础。接下来,您可以进一步扩展此功能,处理更复杂的数据和表单。

16 Flask GET 和 POST 请求处理

https://zglg.work/flask/16/

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议