推荐答案
在 Flask 中,可以使用 redirect()
函数来实现重定向。redirect()
函数接受一个 URL 作为参数,并将用户重定向到该 URL。通常与 url_for()
函数结合使用,以生成动态 URL。
-- -------------------- ---- ------- ---- ----- ------ ------ --------- ------- --- - --------------- --------------- --- -------- ------ -------------------------- -------------------- --- -------- ------ ------- ------- -- -------- -- ----------- ---------
在这个例子中,访问根路径 /
时,用户会被重定向到 /hello
路径。
本题详细解读
1. redirect()
函数
redirect()
函数是 Flask 提供的一个工具,用于将用户重定向到另一个 URL。它接受一个 URL 字符串作为参数,并返回一个 Response
对象,该对象的 HTTP 状态码为 302(临时重定向)。
from flask import redirect @app.route('/old') def old_page(): return redirect('/new')
在这个例子中,访问 /old
路径时,用户会被重定向到 /new
路径。
2. url_for()
函数
url_for()
函数用于生成 URL。它接受视图函数的名称作为参数,并返回该视图函数对应的 URL。使用 url_for()
可以避免硬编码 URL,使代码更加灵活和可维护。
-- -------------------- ---- ------- ---- ----- ------ ------- --------------- --- -------- ------ -------------------------- -------------------- --- -------- ------ ------- -------
在这个例子中,url_for('hello')
会生成 /hello
路径的 URL,然后 redirect()
函数将用户重定向到该 URL。
3. 重定向的状态码
默认情况下,redirect()
函数使用 302 状态码进行重定向。如果需要使用其他状态码(如 301 永久重定向),可以将状态码作为第二个参数传递给 redirect()
函数。
@app.route('/old') def old_page(): return redirect('/new', code=301)
在这个例子中,访问 /old
路径时,用户会被永久重定向到 /new
路径。
4. 重定向到外部 URL
redirect()
函数不仅可以重定向到应用内部的 URL,还可以重定向到外部 URL。
@app.route('/external') def external_redirect(): return redirect('https://www.example.com')
在这个例子中,访问 /external
路径时,用户会被重定向到 https://www.example.com
。