5

我有一个在代码中设置了所有配置的 Web 服务器,但我希望能够处理所有页面 404 错误。我将如何在 Python 中执行此操作?

4

3 回答 3

9

如果您想要更传统地替换 4xx 和 5xx 输出,另请参阅http://www.cherrypy.org/wiki/ErrorsAndExceptions#AnticipatedHTTPresponses 。

于 2010-01-08T17:01:06.137 回答
5

在根目录中创建一个默认处理程序。

class Root:
    def index(self):
        return "Hello!"
    index.exposed = True

    def default(self, attr='abc'):
        return "Page not Found!"
    default.exposed = True
于 2010-01-08T08:58:21.763 回答
0

预期的 HTTP 响应

'error_page' 配置命名空间可用于为预期响应(如 404 Not Found)提供自定义 HTML 输出。提供从中读取输出的文件名。内容将使用普通的旧 Python string formatting <http://www.python.org/doc/2.6.4/library/stdtypes.html#string-formatting-operations>_ 插入值 %(status)s、%(message)s、%(traceback)s 和 %(version)s。

::

_cp_config = {'error_page.404': os.path.join(localDir, "static/index.html")}

从 3.1 版开始,您还可以提供一个函数或其他可调用项作为 error_page 条目。它将被传递相同的状态、消息、回溯和版本参数,这些参数被插入到模板中:

def error_page_402(status, message, traceback, version):
    return "Error %s - Well, I'm very sorry but you haven't paid!" % status
cherrypy.config.update({'error_page.402': error_page_402})

同样在 3.1 中,除了编号的错误代码之外,您还可以提供“error_page.default”来处理所有没有自己的 error_page 条目的代码

于 2017-01-20T11:06:21.223 回答