python - 为什么这个 Flask 函数需要一个错误参数?
问题描述
我正在学习python,我正在尝试建立一个网站。我正处于需要处理错误的地步,但我不理解 Flask 文档中给出的示例:
@app.errorhandler(404)
def not_found(error):
return render_template('error.html'), 404
为什么需要键入not_found(error):
而不是not_found():
?
解决方案
@app.errorhandler()
不注册常规视图。它注册一个错误处理程序。错误处理程序被传递错误对象,因此它们可以确定如何最好地生成备用视图。从文档中:
错误处理程序是一个在引发某种类型的错误时返回响应的函数,类似于视图是一个在请求 URL 匹配时返回响应的函数。它传递了正在处理的错误的实例,这很可能是一个
HTTPException
.
(粗体强调我的)
您无法在request
对象上找到此错误信息,因为此类错误是由处理当前请求的普通视图产生错误引起的。
正常路径是:
- 请求进来
- Flask 找到要运行的正确视图并调用它
- 视图遇到问题并引发 404 not found 错误,通过调用
abort(404)
- Flask 找到一个匹配的错误处理程序并使用错误对象调用它。
- 错误处理程序响应被发送回浏览器。
推荐阅读
- android-studio - 无法为对象堆保留足够的空间:Android Studio
- typescript - 使用元组/联合支持进行深度转换的 TypeScript 映射类型
- java - 在 Eclipse 中创建一个新的 Android 应用程序
- swift - 您如何更改主要子节点的快照以避免产生安全规则问题?
- javascript - JWT 中的刷新和访问令牌流
- visual-c++ - 不存在将“char”转换为“std::string”的合适构造函数
- go - 从列表框中反复添加和删除行最终会因 SIGSEGV 崩溃
- python - 多处理:断言 self._popen 是无,'不能启动一个进程两次'
- c++ - 找到向量中的最大值和最小值
- r - 如何使用for循环求几何级数之和