Несколько слов об ошибке 404

Сейчас в конфигурации URL определен только один шаблон URL – для обработки запросов к URL /hello/. Но что произойдет, если в запросе будет указан какой-нибудь другой URL?

Для того чтобы разобраться в этом, запустите сервер разработки Django и попробуйте зайти, скажем, на страницу http://127.0.0.1:8000/goodbye/, http://127.0.0.1:8000,/hello./subdirectory/ или даже http://127.0.0.1:8000/ (в «корень» сайта). Вы увидите сообщение «Page not found» (Страница не найдена) (см. рис. 3,1). Django выводит это сообщение при обращении к адресам URL, отсутствующим в конфигурации.

Читать

Развертывание Django

В этой главе мы рассмотрим последний этап создания приложения Django: развертывание на действующем сервере.

Если вы следовали за нашими примерами, то, вероятно, уже пользовались сервером разработки (runserver), который очень упрощает жизнь (и избавляет от необходимости настраивать веб-сервер). Но этот сервер предназначен только для разработки на локальном компьютере, а не для публикации сайта в открытом Интернете. Для развертывания приложения Django понадобится мощный промышленный веб-сервер, например, Apache. В этой главе мы покажем, как это делается, но сначала приведем контрольный список того, что должно быть готово перед «выходом в свет».

Читать

Автоматическое экранирование HTML Django

При генерации HTML-разметки по шаблону всегда есть опасность, что значение переменной будет содержать нежелательные символы. Возьмем, к примеру, такой фрагмент:

Привет, {{ name }}.

На первый взгляд, совершенно безобидный способ вывести имя пользователя, но представьте, что произойдет, если пользователь введет такое имя:

Читать

Углубленное изучение шаблонов Django

Несмотря на то что в большинстве случаев вы будете взаимодействовать с системой шаблонов Django в роли автора шаблонов, иногда у вас будет возникать желание настроить или расширить сам механизм шаблонов – либо для того чтобы заставить его делать нечто такое, что он не умеет, либо чтобы упростить решение какой-то задачи.

Читать

Усовершенствование примера обработки формы

Как обычно, мы начали с простейшего работающего примера. А теперь рассмотрим некоторые проблемы и покажем, как их можно решить.

Во-первых, обработка пустого запроса в представлении searchQ явно недостаточна – мы просто выводим сообщение «Введите поисковый запрос», заставляя пользователя нажать кнопку «Назад» в броузере. Это крайне непрофессионально, и, если вы сделаете нечто подобное в действующем приложении, вас отлучат от Django.

Читать

Наследование шаблонов Django

Рассмотренные до сих пор примеры шаблонов представляли собой крохотные фрагменты HTML, но в настоящих приложениях с помощью системы шаблонов Django создаются полномасштабные HTML-страницы. В результате встает типичный для веб-разработки вопрос: как устранить дублирование общих областей, например, встречающейся на всех страницах сайта области навигации?

Читать

Шаблоны Django

Возможно, вас удивил способ, которым мы возвращали текст в примерах представлений из предыдущей главы. Мы встраивали HTML-раз- метку прямо в код на Python, например:

def current_datetime(request): now = datetime.datetime.now()

html = "<html><body>Cei/i4ac %s. </body></html>" % now return HttpResponse(html)

Читать

Третье представление: динамические URL-адреса

В представлении current_datetime динамическим было содержимое страницы – текущие дата и время, но ее URL-адрес (/time/) оставался статическим. Однако в большинстве динамических веб-приложений URL содержит параметры, которые влияют на содержимое результирующей

Читать

Пример: выявление тенденций

«Длинный хвост» поисковых запросов, приводящих посетителей на веб-сайты о еде, изучался с помощью инструментов анализа текстовых данных в программе CSV Easy. Анализировались фразы, состоящие из двух, трех и четырех слов. Инструмент выявил, что из всех проанализированных данных больше всего посетителей приводит на сайты следующий генерический (то есть не зависящий от торговой марки)набор символов:

Читать