基本用法
默认情况下,路由只处理 GET 请求。以下是一个处理 GET 请求的简单示例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Home Page'
if __name__ == '__main__':
app.run(debug=True)
处理多个 HTTP 方法
你可以通过将 methods 参数传递给 @app.route 装饰器来指定视图函数要处理的请求方法。例如:
from flask import Flask
app = Flask(__name__)
@app.route('/submit', methods=['POST', 'GET'])
def submit_form():
if request.method == 'POST':
# 处理表单提交
return 'Form submitted!'
else:
return 'Show form'
在这个例子中,submit_form 视图函数可以处理 POST 和 GET 请求。通过检查 request.method,你可以确定当前请求的方法。
使用装饰器简化方法
为了简化使用,Flask 提供了一些装饰器,分别对应不同的 HTTP 方法。这包括 @app.route、@app.get、@app.post、@app.put、@app.delete 等。以下是一个使用这些装饰器的示例:
from flask import Flask
app = Flask(__name__)
@app.route('/get', methods=['GET'])
def get_method():
return 'This is a GET request'
@app.post('/post')
def post_method():
return 'This is a POST request'
@app.put('/put')
def put_method():
return 'This is a PUT request'
@app.delete('/delete')
def delete_method():
return 'This is a DELETE request'
在这个例子中,每个视图函数都使用了不同的 HTTP 方法装饰器。
重定向和错误处理
在一些情况下,可能需要处理重定向或特定 HTTP 错误的请求。Flask 提供了相应的装饰器,如 @app.redirect 和 @app.errorhandler。
from flask import Flask, redirect, abort
app = Flask(__name__)
@app.route('/redirect')
def perform_redirect():
return redirect('/new_location')
@app.route('/abort')
def perform_abort():
abort(404) # 触发 404 错误
@app.errorhandler(404)
def handle_404_error(error):
return '404 Error: Page not found', 404
在这个例子中,perform_redirect 视图函数执行一个重定向,而 perform_abort 视图函数触发了一个 404 错误,然后 handle_404_error 视图函数处理这个错误。
这些是一些关于 Flask 中处理 HTTP 方法的基本概念。通过合理使用不同的方法,你可以更灵活地构建处理不同类型请求的视图函数。
转载请注明出处:http://www.zyzy.cn/article/detail/7302/Flask