Как сделать сообщение об ошибке печати бутылки в ответе 500?

Я пытаюсь отладить, почему Bottle больше не может найти шаблон, но он не сообщает мне, какой шаблон на самом деле отсутствует:

  File "/virtualenv/lib/python2.7/site-packages/bottle.py", line 3222, in __init__
    raise TemplateError('Template %s not found.' % repr(name))
bottle.TemplateError

Ни консоль, ни веб-страница нигде не содержат отформатированную версию Template %s not found..

Я включил отладку (когда отладка отключена, трассировка стека не отображается на веб-странице).

Обработчик маршрута - это буквально @bottle.post('/request').

Это отличается от Как сделать трассировку стека для печати бутылок при запуске через apache modwsgi?, поскольку ответ - включить отладку.

Используя последнюю стабильную версию Bottle, 0.12.13.


person l0b0    schedule 29.04.2018    source источник
comment
Какая версия бутылки? Моя тестовая программа (Bottle 0.12.13) действительно печатает отсутствующее имя шаблона.   -  person ron rothman    schedule 30.04.2018
comment
Хм. Отправил свой код в качестве ответа в надежде, что он поможет.   -  person ron rothman    schedule 01.05.2018


Ответы (1)


Это работает для меня - ваш код существенно отличается? Надеюсь, вы заметите разницу.

from bottle import Bottle, template

app = Bottle()

@app.route('/')
def home():
    return template('foo')  # template "foo" does not exist

app.run(host='127.0.0.1', port=8080)  # Note: no debug required

Ответ:

% curl http://127.0.0.1:8080/

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html>
        <head>
            <title>Error: 500 Internal Server Error</title>
            <style type="text/css">
              html {background-color: #eee; font-family: sans;}
              body {background-color: #fff; border: 1px solid #ddd;
                    padding: 15px; margin: 15px;}
              pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
            </style>
        </head>
        <body>
            <h1>Error: 500 Internal Server Error</h1>
            <p>Sorry, the requested URL <tt>&#039;http://127.0.0.1:8080/&#039;</tt>
               caused an error:</p>
            <pre>Template &#039;foo&#039; not found.</pre>
        </body>
    </html>

Обратите внимание, что сообщение об ошибке содержит отсутствующее имя шаблона:

Шаблон "foo" не найден.

person ron rothman    schedule 30.04.2018
comment
Нет, сообщение об ошибке такое же, как я его опубликовал. HTML просто содержит ту же строку. Код существенно отличается; это большое устаревшее приложение. - person l0b0; 01.05.2018
comment
Ах, как жаль. Не уверен, что мы можем помочь, не увидев этого кода. Я буду рад еще раз взглянуть, если вы сможете опубликовать урезанную версию своего приложения. Возможно, это просто код рассматриваемого обработчика маршрута? - person ron rothman; 01.05.2018