请求与响应 - 请求方法
今天我们要聊的是 请求方法。在 Flask 中,常用的请求方法就是那些我们常听到的 HTTP 请求方式,比如 GET、POST、PUT 和 DELETE。这些方法让我们能够与后端服务器进行不同类型的交互,每种方法都有它适用的场景。
简介
Flask 框架支持常见的 HTTP 请求方法,最常用的请求方法为:
请求 | 说明 |
---|---|
GET | 获取服务器资源 |
POST | 新增服务器资源 |
PUT | 更新服务器资源(客户端提供改变后的完整资源) |
DELETE | 删除服务器资源 |
Flask 支持所有常见的 HTTP 请求方法。其中最常见的就是 get、post、put 和 delete。我们可以把这些请求方法看作是与服务器沟通的不同方式,每种方式都有它特定的用途。下面我们来具体了解一下。
请求方法的使用场景
- GET:一般是从 URI 中从 服务器中获取资源(比如获取用例列表,比如,获取用户信息等等),但一般 GET 是存在不安全性的,如果有敏感信息,会使用 POST。
- POST: 主要用于将【数据发送到服务器】创建或更新资源。注意,POST 对数据长度是没有限制的,GET 会有限制,这是因为某些浏览器对请求的 URL 长度有限制。
- PUT:也是用于将 【数据发送到服务器】创建或更新资源。
- DELETE:用来删除指定的资源。
对于不同的场景,我们会选择不同的请求方法。比如 get 方法一般会用来从服务器获取数据。举个例子,当你访问一个用户信息页面,或者获取一个用例列表时,你会使用 get 请求。但如果涉及到敏感信息比如密码,基本就不会用 get 了,因为 get 请求的参数会暴露在 URL 中。post 方法用来向服务器发送数据,常见的场景包括提交表单、上传文件或者创建资源。post 请求的数据长度没有限制,这和 get 请求就不一样了,因为 get 请求会受限于 URL 长度,所以 get 请求可以携带的请求数据也是有长度限制的,一般不超过 2048 个字符。put 方法与 post 类似,也是用来发送数据到服务器,不过 put 一般用来更新现有的资源。比如修改用户信息时,会使用 put。delete 方法顾名思义,就是用来删除服务器上的某个资源,比如删除一个用户、删除一条记录等等。
Flask 设置请求方法
Flask 支持的请求方法通过在路由定义时使用 methods
参数进行指定。可以指定多个请求方法,以列表的形式传递给 methods
参数。
默认情况下,Flask 路由定义的视图函数只支持 GET 请求。如果需要支持其他请求方法,需要显式地指定 methods
参数。
下面分别演示这四种请求的用法。
在 Flask 中,你可以通过在路由定义时使用 methods 参数来指定允许的请求方法。默认情况下,Flask 只支持 GET 请求,如果你希望支持其他请求方法,必须显式地在路由中指定。接下来,我们分别演示一下如何在 Flask 中使用这四种常见的请求方法。
GET 请求
from flask import Flask
# 创建 Flask 应用程序实例
app = Flask(__name__)
# get 请求
@app.route("/get")
def get():
return f"Method is GET."
@app.route("/get_method", methods=["GET"])
def get_method():
return f"GET method success."
if __name__ == '__main__':
app.run()
先来看看 GET 方法。GET 是最常见的请求方法,通常用于从服务器获取资源。我们可以通过路由装饰器来指定它。默认情况下,Flask 路由会处理 GET 请求,不过我们也可以明确指定,通过 methods=["GET"],这个接口就只会响应 GET 请求。
POST 请求
from flask import Flask
# 创建 Flask 应用程序实例
app = Flask(__name__)
# post 请求
@app.route("/post", methods=["POST"])
def post():
return f"Method is POST."
if __name__ == '__main__':
app.run()
post 请求通常用于将数据发送到服务器,像提交表单、上传文件、创建资源等。这里是一个接收 post 请求的接口的例子。在这个例子中,我们定义了一个 /post 路由,专门响应 post 请求。你可以使用 Postman 等工具发送一个 post 请求到这个路由,并查看返回的响应。post 请求通常会有一个请求体,里面包含要发送到服务器的数据。
PUT 请求
from flask import Flask
# 创建 Flask 应用程序实例
app = Flask(__name__)
# put 请求
@app.route("/put", methods=["PUT"])
def put():
return f"Method is PUT."
if __name__ == '__main__':
app.run()
put 请求用于更新服务器上的资源。当你想要修改某个已有的资源时,put 是一个常用的请求方法。比如,你要修改一个用户的资料时,通常会使用 put 请求。这个 /put 路由专门响应 put 请求。和 post 一样,put 请求也会携带请求体,但它通常是用来替代资源的完整内容,而不是增量更新。
DELETE 请求
from flask import Flask
# 创建 Flask 应用程序实例
app = Flask(__name__)
# delete 请求
@app.route("/delete", methods=["DELETE"])
def delete():
return f"Method is DELETE."
if __name__ == '__main__':
app.run()
delete 请求的作用是删除服务器上的资源。比如,你可能会用 delete 请求来删除数据库中的某个记录。来看一个 delete 请求的例子。在这个例子中,路由 /delete 被指定为处理 delete 请求。当你访问这个接口时,它将返回“Method is delete”,表明它已收到删除请求。delete 请求常常用来删除特定资源,例如删除一个用户、删除一条数据等。
总结
- 请求方法的使用场景
- Flask 设置请求方法
最后我们来总结一下。这个章节介绍了常见的 HTTP 请求方法,包括 get、post、put 和 delete,并且展示了如何在 Flask 中使用这些请求方法。不同的请求方法有不同的应用场景。get 用于获取资源,post 用于提交数据,put 用于更新资源,delete 用于删除资源。而在 Flask 中,通过设置路由的 methods 参数,你可以灵活地处理不同的请求方法。