推荐答案
在 Flask 中,可以通过 @app.route
装饰器的 methods
参数来匹配请求方法。默认情况下,Flask 只处理 GET
请求,但可以通过显式指定 methods
参数来处理其他请求方法,如 POST
、PUT
、DELETE
等。
-- -------------------- ---- ------- ---- ----- ------ ------ ------- --- - --------------- ---------------------- --------------- ------- ------ ---------- --- ---------- -- -------------- -- ------ ------ ----- -- - --- -------- ---- -------------- -- ------- ------ ----- -- - ---- -------- ---- -------------- -- ------ ------ ----- -- - --- -------- ---- -------------- -- --------- ------ ----- -- - ------ -------- ----- ------ ------------ ------- -------
本题详细解读
1. @app.route
装饰器
@app.route
是 Flask 中用于定义路由的装饰器。它允许你指定 URL 路径以及处理该路径的视图函数。默认情况下,@app.route
只处理 GET
请求。
2. methods
参数
methods
参数是一个列表,用于指定该路由可以处理的 HTTP 请求方法。常见的请求方法包括 GET
、POST
、PUT
、DELETE
等。通过指定 methods
参数,你可以让同一个视图函数处理多种请求方法。
3. request.method
request.method
是 Flask 提供的全局对象 request
的一个属性,用于获取当前请求的 HTTP 方法。通过判断 request.method
的值,你可以在视图函数中根据不同的请求方法执行不同的逻辑。
4. 示例代码解析
@app.route('/example', methods=['GET', 'POST', 'PUT', 'DELETE'])
:定义了一个路由/example
,并指定它可以处理GET
、POST
、PUT
和DELETE
请求。if request.method == 'GET':
:判断当前请求是否为GET
请求,如果是,则返回'This is a GET request'
。- 类似地,代码中分别处理了
POST
、PUT
和DELETE
请求,并返回相应的字符串。 - 如果请求方法不在
methods
列表中,Flask 会自动返回405 Method Not Allowed
错误。
通过这种方式,你可以灵活地处理不同的 HTTP 请求方法,并根据需要执行不同的逻辑。