2013-07-17 3 views
1

Я пытаюсь найти способ установить точку останова при запуске сервера Django в dotcloud.Как использовать отладчик werkzeug в dotcloud?

Я нашел следующее надежное звено связи http://docs.dotcloud.com/tutorials/python/django/#advanced-debugging-with-werkzeug.

Однако, когда я искал веб-страницу, я не мог найти ссылку на отладчик.

Эта функция по-прежнему доступна в dotcloud? Если нет, есть еще один хороший вариант?

+0

Откуда вы получили эту ссылку? Я не вижу фактического якоря для него на странице. – Andy

+0

Я получил его здесь http://blog.dotcloud.com/advanced-django-debugging-with-werkzeug. Я был бы в равной степени счастлив просто узнать ЛЮБОЙ способ получить точку останова в своем приложении и быть в состоянии совать. – NathanM

ответ

1

Некоторые вещи, чтобы думать о том, перед включением WERKZEUG отладчика:

  • При включении WERKZEUG отладчик, каждый запуск исключение будет иметь доступ код и данные (в том числе базы данных пароли и другие чувствительные учетные данные). Будьте осторожны и не оставьте его включенным дольше, чем необходимо, или добавьте дополнительную защиту. слой для предотвращения несанкционированных пользователей!
  • После завершения отладки восстановите старый файл wsgi.py и снова нажмите код (вы можете оставить werkzeug в вашем файле requirements.txt, если хотите, это не имеет значения).

Вот что вы можете сделать, чтобы установить его:

1) добавить следующие строки в wsgi.py

# The following lines enable the werkzeug debugger 
import django.views.debug 

def null_technical_500_response(request, exc_type, exc_value, tb): 
    raise exc_type, exc_value, tb 
django.views.debug.technical_500_response = null_technical_500_response 
from werkzeug.debug import DebuggedApplication 
application = DebuggedApplication(application, evalex=True) 

2) добавить следующие строки в requirements.txt

werkzeug 

Если вы хотите попробовать быстрый образец отладчика, я установил пример интерактивного отладчика. Это тестовое приложение будет доступно только в течение нескольких дней. http://django-johndotcloud.dotcloud.com/raise/

Ссылки:

1

код в ответ выше уже не работает на Python 3.

Вот как сделать то же самое в P yth 3.3:

import django.views.debug 

def null_technical_500_response(request, exc_type, exc_value, tb): 
    raise exc_type(exc_value).with_traceback(tb) 
django.views.debug.technical_500_response = null_technical_500_response 

from werkzeug.debug import DebuggedApplication 
application = DebuggedApplication(application, evalex=True)