Flask 重定向
通过这个解释,我们将学习如何使用 redirect()
函数来重定向用户,并了解我们如何在 Flask 中将其用于多种用途。
借助 Flask 中的 redirect()
函数重定向用户
在 Flask 中,重定向相当简单。它只是通过使用请求或 API 来重定向你网站上的用户或某人。
有不同的方法来重定向用户。例如,如果他们登陆你的主页并登录到你的网站,那么你可以将他们重定向到会员区,或者你可以将他们重定向到密码恢复页面,无论你喜欢哪里。
通常,重定向是一种将人们从服务器端发送到下一页的方法。因此他们不必在该页面上发起请求。
在开始编写代码之前,我们将在这里向你展示 redirect()
函数语法。
语法:
flask.redirect(location, code=302, Response=None)
我们将只使用前两个参数,location
和 code
。location
是一个 URL,code
是随请求或 redirect()
响应发送的 HTTP 状态代码。
让我们用一些代码来证明这一点。在这里,我们将快速设置一个 Flask 应用程序并从导入 Flask 开始。
我们将设置几个路由:一个是创建一个带有 header
标签的 index()
函数,另一个是一个 MEMBERS()
函数,它也使用一个带有特定端点的 header
标签。
第一个示例是在我们的应用程序中的页面之间进行重定向。我们创建了两个视图或两个页面,我们希望导航到索引的人自动重定向到成员页面。
因此,我们将使用 redirect()
函数和 url_for()
函数。redirect()
函数将为第一个参数获取一个位置,而这个 location
参数需要是 url_for()
。
我们只需要在 url_for()
中输入我们想要的函数名称,MEMBERS()
函数生成成员的 URL,然后这个 index()
函数将用户重定向到成员’ 页。
from flask import Flask,redirect,url_for
app=Flask(__name__)
@app.route('/')
def index():
return redirect(url_for('MEMBERS'))
@app.route('/members')
def MEMBERS():
return '<h1>Members Area</h1>'
if __name__=='__main__':
app.run(debug=True)
保存后,如果我们使用索引页面运行这个应用程序,当我们导航到那里时,它会将我们重定向到成员页面。
打开开发者工具,让我们看看当我们运行这个页面时网络在说什么。我们在这里请求了索引,它给了我们 302
的状态。
当我们重定向某人时通常使用 302
;它会将我们发送到成员页面,但我们没有请求服务器执行此操作。
输出:
我们还可以将第二个参数更改为 404
作为重定向,这会很奇怪,但我们可以在任何情况下使用它。我们将转到索引,它告诉我们你应该被自动重定向到目标 URL。如果没有,请单击链接
。
这是因为通常情况下,404
用于错误而不是重定向,但如果我们点击 Flask 生成的链接,它会将我们发送到会员区。除非有特定原因,否则无需修改状态码;记在脑子里。
from flask import Flask,redirect,url_for
app=Flask(__name__)
@app.route('/')
def index():
return redirect(url_for('MEMBERS'),404)
@app.route('/members')
def MEMBERS():
return '<h1>Members Area</h1>'
if __name__=='__main__':
app.run(debug=True)
输出:
假设你要重定向到任何 URL 而不是会员区;假设你出于某种原因想要重定向到你网站之外的内容。在我们的例子中,我们希望它们被自动重定向到 google.com
。
from flask import Flask,redirect,url_for
app=Flask(__name__)
@app.route('/')
def index():
return redirect("https://www.google.com")
@app.route('/members')
def MEMBERS():
return '<h1>Members Area</h1>'
if __name__=='__main__':
app.run(debug=True)
输出:
根据该过程的结果,你会将它们重定向到某个地方。例如,如果你确定用户名和密码有效,你将获得他们登录信息的帖子数据。
如果密码正确,你会将他们重定向到会员区或你想向用户显示的任何地方。或者,如果密码错误,你可以将他们重定向到密码恢复页面;这完全取决于你,但要知道重定向通常发生在视图中的一些处理之后。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn