在Flask中,我们使用装饰器来定义路由并处理HTTP请求的不同方法。
定义路由:我们使用
@app.route()
装饰器来定义一个路由。例如,要定义一个响应GET请求的'/hello'路由,我们可以这样做:from flask import Flask app = Flask(__name__) @app.route('/hello') def hello(): return 'Hello, World!'
- 处理不同的HTTP方法:我们可以使用相同的路由,但通过不同的装饰器来处理不同的HTTP方法。例如,要处理对'/hello'的POST请求,我们可以添加一个新的函数并用
@app.route()
装饰器指定相同的路由和methods
参数:@app.route('/hello', methods=['POST']) def hello_post(): return 'You posted to Hello!'
单一函数处理多个HTTP方法:我们也可以在单一的函数中处理多种HTTP方法,方法是在
@app.route()
装饰器中指定methods
参数为一个包含所有需要支持的方法的列表。然后,在函数内部,我们可以通过检查request.method
属性来确定如何处理请求:from flask import request @app.route('/hello', methods=['GET', 'POST']) def hello_multimethod(): if request.method == 'GET': return 'Hello, World!' elif request.method == 'POST': return 'You posted to Hello!'
- 动态路由:我们还可以使用尖括号
<variable_name>
语法在路由中定义变量部分。当URL匹配这个模式时,尖括号中的部分将作为关键字参数传递给视图函数:@app.route('/user/<username>') def show_user_profile(username): return f'User {username}'
这些是Flask中定义路由和处理不同HTTP方法的基本方式。通过组合这些技术,我们可以构建出能够处理各种HTTP请求的Web应用。