在 Flask 中,请求处理时发生一个错误时会发生什么?这个特殊的行为在 0.7 中 变更了,因为我们想要更简单地得知实际发生了什么。新的行为相当简单:
before_request()
上绑定的函数。 如果这些函数中的某个返回了一个响应,其它的函数将不再被调用。任何情况 下,无论如何这个返回值都会替换视图的返回值。before_request()
上绑定的函数没有返回一个响应, 常规的请求处理将会生效,匹配的视图函数有机会返回一个响应。after_request()
上绑定的函数适当地替换或修改它。teardown_request()
上绑定的函 数。这总会发生,即使在一个未处理的异常抛出后或是没有请求前处理器执行过 (例如在测试环境中你有时会想不执行请求前回调)。现在错误时会发生什么?在生产模式中,如果一个异常没有被捕获,将调用 500 internal server 的处理。在生产模式中,即便异常没有被处理过,也会往上冒 泡抛给给 WSGI 服务器。如此,像交互式调试器这样的东西可以提供有用的调试信息。
在 0.7 中做出的一个重大变更是内部服务器错误不再被请求后回调传递处理,而且 请求后回调也不再保证会执行。这使得内部的调度代码更简洁,易于定制和理解。
新的绑定于销毁请求的函数被认为是用于代替那些请求的最后绝对需要发生的事。
distribute的前身是setuptools,是一个通常用于分发 Python 库和扩展程序的外部库。它依赖于随 Python 预装的distutils...
Django的管理后台对多数据库没有明显的支持。如果要为路由指定的数据库以外的数据库提供模型的管理界面,你需要编写自定义的 M...
为了完成反向解析URL,你需要像上面那样使用命名URL模式。用于命名URL的字符串可以包含任意字符,并不仅限于Python里合法的命名...
当一个用户上传文件时,Django 会把文件数据传递给 upload handler —— 这是一个很小的类,它用来在上传时处理文件数据。上...
配置模板引擎是通过 TEMPLATES 进行配置。这是一个配置列表,每个引擎都有一个。默认值为空。startproject 命令生成的 ...
在请求阶段,在调用视图之前,Django 按照定义的顺序应用中间件 MIDDLEWARE,自顶向下。你可以把它想象成一个洋葱:每个中间...
让我们通过示例来学习。通过这个教程,我们将带着你创建一个基本的投票应用程序。它将由两部分组成:一个让人们查看和投票的公共...
Java Swing教程 -Java Swing FlowLayoutFlowLayout按照它们添加到容器的顺序布置组件水平,然后垂直。当水平地定位部件时,它可...
Java Swing教程 -JSplitPaneJSplitPane有一个拆分器来拆分两个组件。 分割条可以水平或垂直显示。用户可以向上/向下或向左/向右...