Flask 重定向和错误

17 Mar 2025 | 4 分钟阅读

Flask 类提供了 redirect() 函数,该函数将用户重定向到指定的 URL,并带有指定的 status code。

HTTP status code 是服务器对浏览器请求的响应。当我们访问一个网站时,会向服务器发送一个请求,然后服务器会用一个三位数的代码——HTTP status code——响应浏览器请求。这个 status code 也代表了错误。

使用 redirect() 函数的语法如下。

它接受以下参数。

序号参数描述
1location这是响应将被重定向的 URL。
2status code这是与服务器响应一起发送到浏览器标头的 status code。
3response这是项目中用于未来需求的响应实例。

考虑以下示例,其中用户在成功登录时以 302 (Found) 的 HTTP status code 重定向到成功页面,否则;用户仅返回到此页面。

示例

login.py

home.html

login.html

在上面的示例中,URL '/' 包含一个指向登录页面的链接,如下图所示。

Flask Redirect and Errors

下面的图像显示了登录页面,该页面提示用户输入电子邮件和密码,然后提交按钮将用户重定向到 URL /validate。

Flask Redirect and Errors

在这种情况下,由于我输入了一个随机密码,不等于“jtp”,因此用户仅返回到此页面(登录页面)。

但是,只有当用户输入的密码等于“jtp”时,用户才会重定向到 URL /success。成功登录时生成的 URL https://:5000/success 如下图所示。

Flask Redirect and Errors

标准 HTTP 代码

以下 HTTP 代码是标准化的。

  • HTTP_300_MULTIPLE_CHOICES
  • HTTP_301_MOVED_PERMANENTLY
  • HTTP_302_FOUND
  • HTTP_303_SEE_OTHER
  • HTTP_304_NOT_MODIFIED
  • HTTP_305_USE_PROXY
  • HTTP_306_RESERVED
  • HTTP_307_TEMPORARY_REDIRECT

默认 status code 是 HTTP_302_FOUND。

abort() 函数

abort() 函数用于处理客户端请求中涉及错误的场景,例如错误的请求、未经授权的访问等等。但是,必须指定发生错误的错误代码。

使用 abort() 函数的语法如下。

我们可以根据指定的错误指定以下错误代码。

  • 400:表示错误的请求
  • 401:表示未经授权的访问
  • 403:表示禁止访问
  • 404:表示未找到
  • 406:表示不可接受
  • 415:表示不支持的媒体类型
  • 429:表示请求过多

让我们修改上面示例中的 login.py 脚本,并在用户输入任何随机密码的情况下使用 abort() 函数和错误代码 401(未经授权的访问)。

示例

在错误密码的情况下,它将生成以下结果。

Flask Redirect and Errors

在这里,我们使用了错误代码 401,因为用户请求对资源的未经授权访问。我们可以根据错误情况将其更改为任何代码。


下一主题Flask Flashing





Youtube 关注我们的Youtube频道获取视频:立即加入

反馈


帮助他人,请分享

facebooktwitterpinterest

学习最新教程


准备


热门技术


B.Tech / MCA