Python Flask 在网页应用程序中处理错误和异常
Python Flask 在网页应用程序中处理错误和异常
在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。这不是设计意图,但目的是首先关注网页应用程序的关键组件。网页框架的美妙之处在于,它们通常默认支持错误处理。如果发生任何错误,将自动返回相应的状态代码。错误代码被很好地定义为HTTP协议的一部分。例如,从400到499的错误代码表示客户端请求的错误,而从500到599的错误代码则表示服务器在执行请求时出现问题。下面总结了一些常见的错误:
错误代码 | 名字 | 描述 |
---|---|---|
400 | Bad Request (坏请求) | 这个错误表明了或者 URL 或者 请求内容有错误 |
401 | Unauthorized (未认证) | 当用户名或密码错误或没有提供时,会出现这个错误 |
403 | Forbidden (禁止) | 这个错误表明一个用户访问了他不被允许访问的资源 |
404 | Not Found (未发现) | 当客户端尝试访问不存在的资源时,会返回这个错误。通常情况下是 URL 错了。 |
500 | Interanl Server Error(服务器内部错误) | 这个错误表明了请求是正确的,但是在服务器内部出现了错误。 |
在 https://httpstatuses.com/
这个网站上有完整的错误列表。
Flask 框架还附带了一个错误处理框架。在处理客户端请求时,如果我们的程序崩溃,默认情况下会返回 500 Internal Server Error
。如果客户端请求的 URL 未映射到任何Python函数,Flask 将向客户端返回 404 Not Found
错误。这些不同的错误类型被实现为HTTPException
类的子类,该类是 Flask 库的一部分。
如果我们想用自定义行为或自定义消息处理这些错误或异常,我们可以向 Flask 应用程序注册我们的处理程序。请注意,错误处理程序是 Flask 中的一个函数,仅在发生错误时触发,我们可以将特定的错误或通用异常与我们的处理程序相关联。我们构建了一个示例代码来从较高的层次说明这个概念。首先,我们将演示一个简单的网页应用程序,它有两个函数(hello
和 greeting
)来处理两个URL,如下面的示例代码所示:
# 第一部分
import</