路由参数
Flask支持在URL中添加参数,这些参数可以在视图函数中使用。例如,假设我们有一个URL '/users/<username>',它将请求发送到视图函数'user_profile',该函数将显示有关特定用户的信息。下面是一个使用路由参数的示例:
代码语言:javascript复制@app.route('/users/<username>')
def user_profile(username):
return 'Profile page for user {}'.format(username)
在上面的示例中,<username>是一个路由参数,它告诉Flask将任何URL中的'username'部分传递给'user_profile'函数。在函数中,我们使用这个参数来生成响应。例如,如果访问URL'/users/john',则视图函数将返回“Profile page for user john”。
路由方法
HTTP协议定义了许多不同的请求方法,例如GET、POST、PUT、DELETE等等。在Flask中,可以使用app.route()装饰器的methods参数来指定路由方法。下面是一个使用路由方法的示例:
代码语言:javascript复制@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# Process login form
return redirect(url_for('dashboard'))
else:
# Show login form
return render_template('login.html')
在上面的示例中,路由'/login'将响应GET和POST请求。如果请求是POST,视图函数将处理登录表单并重定向到用户的仪表板页面。如果请求是GET,视图函数将渲染一个HTML模板,显示登录表单。
Flask重定向
在Flask中,可以使用重定向函数redirect()来将请求重定向到另一个URL。例如,假设我们有一个视图函数'login',它处理登录表单并重定向到用户的仪表板页面。下面是一个使用重定向函数的示例:
代码语言:javascript复制from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
# Process login form
return redirect(url_for('dashboard'))
@app.route('/dashboard')
def dashboard():
# Show dashboard page
return render_template('dashboard.html')
在上面的示例中,当用户提交登录表单时,视图函数'login'将处理表单,然后使用重定向函数将用户重定向到仪表板页面。这个重定向是通过调用'url_for()'函数来生成URL的。'url_for()'函数接受视图函数的名称作为参数,并返回该视图函数的URL。