Пилоны: Как написать пользовательскую страницу 404? - PullRequest
2 голосов
/ 15 декабря 2010

Итак, этот вопрос был задан ранее , но не получил подробного ответа.

Я хочу переопределить страницу ошибок Pylons по умолчанию, чтобы сделать ее более привлекательной.Я дошел до перезаписи контроллера в error.py следующим образом:

def document(self):
    """Render the error document"""
    resp = request.environ.get('pylons.original_response')
    content = literal(resp.body) or cgi.escape(request.GET.get('message', ''))
    custom_error_template = literal("""\
    # some brief HTML here
    """)
    page = custom_error_template % \
        dict(prefix=request.environ.get('SCRIPT_NAME', ''),
             code=cgi.escape(request.GET.get('code', str(resp.status_int))),
             message=content)
    return page

Это работает нормально.Теперь я хотел бы использовать шаблон в каталоге шаблонов, чтобы страница 404 могла наследовать мой обычный шаблон макета, CSS и т. Д.

(я знаю, что это плохая идея для 500 ошибок -Я проверю error.py, что код является 404, прежде чем использовать шаблон, а не литерал.)

Итак, вот вопрос.Как определить custom_error_template, чтобы он указывал на мой шаблон, а не на литерал?

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Вы должны быть в состоянии использовать метод render (импортируйте его из yourapp.lib.base и используйте return render('/path/to/error/template').

0 голосов
/ 15 января 2015

Просто создайте свой вид и используйте метод конфигурации add_notfound_view для его настройки.

См .: http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html?highlight=document%20error#pyramid.config.Configurator.add_notfound_view

...