Обработка ошибок Python Cherrypy 404 - PullRequest
5 голосов
/ 08 января 2010

У меня есть веб-сервер, на котором настроены все конфигурации в коде, но я хочу обрабатывать все ошибки страницы 404 Как мне сделать это в Python?

Ответы [ 3 ]

9 голосов
/ 08 января 2010

См. Также http://www.cherrypy.org/wiki/ErrorsAndExceptions#AnticipatedHTTPresponses, если вы хотите более традиционную замену выходов 4xx и 5xx.

5 голосов
/ 08 января 2010

Сделать обработчик по умолчанию в корне.

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

    def default(self, attr='abc'):
        return "Page not Found!"
    default.exposed = True
0 голосов
/ 20 января 2017

Ожидаемые ответы HTTP

Пространство имен конфигурации error_page может использоваться для предоставления настраиваемого вывода HTML для ожидаемые ответы (например, 404 не найден). Укажите имя файла, из которого выводится будет прочитано Содержимое будет интерполировано со значениями% (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, вы также можете предоставить функцию или другое вызываемое запись страницы ошибки. Будет передан тот же статус, сообщение, traceback и аргументы версии, которые интерполируются в шаблоны ::

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

...