|
Table of contents
|
Восхититесь созданным вами 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 отображает страницу с ошибкой только когда находится в режиме отладки. Мы объясним позже как деактивировать отладочный режим в главе «Сессии, пользователи и регистрация». Просто запомните, что после создания проект находится в режиме отладки. |
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |