Что касается запуска сервера разработки, он скажет, что при запуске сервера обнаружено 0 ошибок. Обычно это относится к конфигурации и синтаксису в файле и моделях settings.py
. Он будет сообщать только о ошибках, которые возникают через путь к коду запуска, который обычно не проходит через обработчики вашего вида.
По мере изменения файлов сервер разработки достаточно умен, чтобы перезагрузить себя. Синтаксические ошибки приведут к краху сервера разработки.
Если вы видите пустую страницу и запрос GET успешно возвращается, ваш код отлично работает с точки зрения Django. Он обрабатывает запрос и возвращает ответ, хотя вы знаете, что ответ неверен. Как правило, синтаксические ошибки здесь заставят представление возвращать 500, где вы увидите отладочную информацию, возвращаемую в представлении (если DEBUG = True
), и вы увидите ее также в консоли. Казалось бы, ваша опечатка была действительной python, поскольку она успешно прошла через обработчик вида, чтобы вернуть пустую страницу. Там действительно ничего не может сделать, кроме модульных тестов, как Django, пустая страница может быть действительным ответом.
Теперь, когда вы переходите от разработки к производству, вы, вероятно, захотите узнать, когда страница попадает в ошибку. Django builds off Python's logging framework для обработки ошибок и других сообщений. По умолчанию в вашем файле settings.py
настроен обработчик mail_admins
, который обрабатывает ошибку на django.request
. Если вы установили ADMINS
и EMAIL_BACKEND
в свой файл настроек, вы получите по электронной почте трассировку стека за 500 ошибок, которые происходят на вашем сервере. По мере того, как вы получаете больше возможностей, вы можете создать свой собственный журнал, отправив сообщения на фреймворк Python и пользовательские обработчики.
import logging
logger = logging.GetLogger(__name__) #using the module name so in your settings.py you can configure different settings per module
logger.info('msg')
logger.error('msg')
Я бы рекомендовал смотреть в Sentry в качестве обработчика для сообщений об ошибках, что делает удар подсчета и хранит журналы ошибок.
Оказывается, это на самом деле больше проблем, чем привести. Я не получаю ошибок «желтой страницы» в Django, когда я использую хром (они просто пусты). Однако, когда я использую IE, я получаю их. Я задам новый вопрос с этими деталями. – jsexauer
Новый вопрос на http://stackoverflow.com/questions/20031556/ – jsexauer
Это немного неточно. Во время запуска * синтаксические ошибки * в модулях просмотра, безусловно, будут пойманы, поскольку Django должен импортировать представления, чтобы создавать сопоставления маршрутов. Однако он не поймает никаких ошибок во время выполнения * в большинстве модулей, но это другая проблема. – hayavuk