【问题标题】:Python Cherrypy 404 Error HandlingPython Cherrypy 404 错误处理
【发布时间】:2010-01-08 08:50:55
【问题描述】:

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

【问题讨论】:

  • 请更具体并更详细地描述您的系统。

标签: python cherrypy


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

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

    def default(self, attr='abc'):
        return "Page not Found!"
    default.exposed = True

【讨论】:

  • 如何发送http 404标头?
  • @SeunOsewa cherrypy.response.status = 404
【解决方案3】:

预期的 HTTP 响应

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

::

_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条目的代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2014-09-10
    • 2013-12-08
    • 2013-07-05
    • 2012-11-16
    • 2017-03-02
    相关资源
    最近更新 更多