Отладка Django с помощью Werkzeug под WSGI/Passenger - проблемы

Я пытаюсь использовать отладчик werkzeug, но, несмотря на его установку в соответствии с рекомендациями, я просто получаю обычную страницу ошибки django.

из моего пассажира_wsgi.py:

import django.core.handlers.wsgi
from werkzeug.debug import DebuggedApplication

application = django.core.handlers.wsgi.WSGIHandler()
application = DebuggedApplication(application, evalex=True)

Я в значительной степени ограничен запуском моего приложения django (даже в процессе разработки) через пассажира, а не через manage.py.

Можно ли как-нибудь заставить отладчик werkzeug работать в этих условиях? Могу ли я, например, запретить Django перехватывать ошибки?


person Marcin    schedule 24.07.2011    source источник


Ответы (3)


Вы можете отключить обработку исключений Django с помощью параметра DEBUG_PROPAGATE_EXCEPTIONS. Тогда Werkzeug сможет с этим справиться.

person Ilia Novoselov    schedule 23.09.2011

Это легко сделать с помощью django-command-extensions. Команда runserver_plus содержит отладчик werkzeug.

person shanyu    schedule 24.07.2011
comment
Спасибо, но я не могу использовать manage.py. Я должен запустить свое приложение через пассажира. - person Marcin; 24.07.2011
comment
Разве я не могу предположить, что вам нужна отладка только в вашей среде разработки, где вы не привязаны к пассажиру? - person shanyu; 24.07.2011
comment
Нет, по разным причинам я разрабатываю в размещенной среде, что вынуждает меня использовать пассажира. - person Marcin; 24.07.2011
comment
Кстати, вы же не собираетесь использовать отладчик werkzeug в своей производственной системе, верно? Это позволяет выполнять код. - person shanyu; 24.07.2011

Это связано с тем, что Django перехватывает любые ошибки и преобразует их в страницу ошибок задолго до того, как django.core.handlers.wsgi.WSGIHandler() что-либо вернет. Вы не сможете заставить его работать таким образом, поскольку ошибки приложений на вашем сайте Django никогда не будут распространяться обратно на верхний уровень.

person Graham Dumpleton    schedule 24.07.2011
comment
Итак, есть ли способ заставить их работать вместе, или мне не повезло? - person Marcin; 24.07.2011
comment
Вы можете, просто не так, как вы это делаете. Немного поиска в Google дает «voices.canonical.com/isd/?p=116'. Я уверен, что есть и другая информация, если вы посмотрите. - person Graham Dumpleton; 24.07.2011
comment
Спасибо. Я полагаю, у вас нет опыта работы с этим подходом, которым вы хотели бы поделиться? - person Marcin; 24.07.2011