WD5 - разработка сайтов

django unhandled exception или 500 error - решение проблемы

При выкладывании сайта сделанного на django мы как правило выключаем режим отладки. Особенностью данного режима является то, что ошибки не отображаются.

При использования web сервера cherokee вместо ошибки пишется unhandled exception, означающий что данные не переданы.

При проверке ответа сервера мы получим http ответ сервера 500, но может быть и 200 и просто нет ответа сервера.

Реально это просто ошибка в нашем сайте

1) Включим режим отладки, посмотрим, может действительно ошибка, например не удаётся подключиться к базе данных.

2) Отсутствует шаблон ошибки 404.html и 500.html. Как бы это не странно звучало, но многие не читают детально документацию. В режиме отладки (debug=true) нам отдается информация об ошибке, а вот при выключенном режиме в (debug=false) джанго ищет шаблоны соответствующие ошибке, чаще всего это 404.html и 500.html

Для тех кто не разобрался почему сам сервер не отдает страницы ошибки в отличие от того же apache с php нужно понять, что апач запрашивает все страницы и сам думает есть там данные или нет.

nginx, cherokee и подобные серверы передают ответ нашему джанго сайту и ждут от него результата, если результата нет, они отдают 500 ошибку или просто ничего не отвечают. Они не знают, есть там файл или нет, если проверка этого пути не прописана в конфиге сервера.

None