|
Оглавление
|
Восхититесь созданным вами web-приложением, а теперь давайте
сломаем его. Умышленно внесём ошибку в код представления
def hours_ahead(request, offset):
# try:
# offset = int(offset)
# except ValueError:
# raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
Запустите тестовый сервер и перейдите по ссылке http://127.0.0.1:8000/time/plus/3/. Вы увидите страницу
с ошибкой, которая будет содержать значительный объём
информации, включая "unsupported type for timedelta hours component: unicode"
Что же случилось? Как мы говорили фуекция
Целью данного примера было продемонстрировать как Django отображает страницы с ошибкой. Потратьте немного времени на изучение этой страницы и вы увидите, как много информации она предоставляет. Отметим следующее:
Страница с ошибкой имеет возможность отображать ещё больше
информации в особых случаях, например, в случаях ошибки в
синтаксисе шаблона. Мы рассмотрим это позже, когда будем
обсуждать шаблонную систему Django. А сейчас, раскомментируйте
строки представления
Вы являетесь разработчиком, которому нравится производить
отладку кода с помощью оператора print? Вы можете использовать для этого страницу ошибки Django — без всяких
print. Вставьте на время в любой точке вашего
представления оператор assert False — это
вызовет отображение ошибки. Затем, вы можете просмотреть
локальные переменные и состояние программ. Ниже дан пример
использования этого подхода в представлении
def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
assert False
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
Очевидно, что большая часть данной информации не стоит показывать всем — она рассказывает о вашем коде и настройках Django — будет глупо отображать её всему Internet. Какой-нибудь отрицательный персонаж может воспользоваться ей для изучения вашего web-приложения и осуществления своих зловредных планов. По этой причине Django отображает страницу с ошибкой только когда находится в режиме отладки. Мы объясним позже как деактивировать отладочный режим в главе «Сессии, пользователи и регистрация». Просто запомните, что после создания проект находится в режиме отладки. |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
1049
49
130
71
Версия книги
1.0
2.0
Версия 2.0 в процессе перевода!
Мой луч
Многообразие света
Полезное
Актуальные вакансии,
Python работа
для python-разработчиков.
Скачать в формате
CHM от 2 сентябряЗаказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта. Чем чаще заказываете — тем больше перевожу. Русская группа
Ускорить процесс перевода!
R130494980980
Z425285133788 E112528079659 U327380922061 Книга помогла реализовать:
|
| © 2008-2009 Ruslan Popov @ gmail.com | Powered by Django 1.1 beta 1 SVN-11114 |