Сейчас в конфигурации 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/ (в «корень» сайта). ...
В этой главе мы рассмотрим последний этап создания приложения Django: развертывание на действующем сервере.Если вы следовали за нашими примерами, то, вероятно, уже пользовались сервером разработки (runserver), который очень упрощает жизнь (и избавляет от необходимости настраивать веб-сервер). Но этот сервер предназначен только для разработки на локальном компьютере, а не для публикации ...
Автоматическое экранирование HTML Django
Опубликовано Четверг, Февраль 2, 2012 - admin. В рубрике Django Метки: autoescape, автоматическое, переменной, Привет, шаблон, шаблона, экранирование
При генерации HTML-разметки по шаблону всегда есть опасность, что значение переменной будет содержать нежелательные символы. Возьмем, к примеру, такой фрагмент:Привет, {{ name }}.На первый взгляд, совершенно безобидный способ вывести имя пользователя, но представьте, что произойдет, если пользователь введет такое имя:<script>alert( 'hello')</script>В этом случае при отображении шаблона будет создана такая HTML- ...
Несмотря на то что в большинстве случаев вы будете взаимодействовать с системой шаблонов Django в роли автора шаблонов, иногда у вас будет возникать желание настроить или расширить сам механизм шаблонов - либо для того чтобы заставить его делать нечто такое, что он не умеет, либо чтобы упростить решение какой-то задачи.В ...
Как обычно, мы начали с простейшего работающего примера. А теперь рассмотрим некоторые проблемы и покажем, как их можно решить.Во-первых, обработка пустого запроса в представлении searchQ явно недостаточна - мы просто выводим сообщение «Введите поисковый запрос», заставляя пользователя нажать кнопку «Назад» в броузере. Это крайне непрофессионально, и, если вы сделаете нечто ...
Рассмотренные до сих пор примеры шаблонов представляли собой крохотные фрагменты HTML, но в настоящих приложениях с помощью системы шаблонов Django создаются полномасштабные HTML-страницы. В результате встает типичный для веб-разработки вопрос: как устранить дублирование общих областей, например, встречающейся на всех страницах сайта области навигации?Классически эта проблема решалась с помощью включения на ...
Возможно, вас удивил способ, которым мы возвращали текст в примерах представлений из предыдущей главы. Мы встраивали HTML-раз- метку прямо в код на Python, например:def current_datetime(request): now = datetime.datetime.now()html = "<html><body>Cei/i4ac %s. </body></html>" % now return HttpResponse(html)Хотя это удобно, когда нужно объяснить, как работают представления, но, вообще говоря, «зашивать» HTML-разметку непосредственно ...
Третье представление: динамические URL-адреса
Опубликовано Среда, Январь 18, 2012 - admin. В рубрике Django Метки: current_datetime, datetime, Django, offset, представления, только, шаблон
В представлении current_datetime динамическим было содержимое страницы - текущие дата и время, но ее URL-адрес (/time/) оставался статическим. Однако в большинстве динамических веб-приложений URL содержит параметры, которые влияют на содержимое результирующейстраницы. Так, в книжном интернет-магазине каждой книге может быть сопоставлен отдельный URL (например, /books/243/ и /books/81196/).Сейчас мы создадим третье представление, ...
Пример: выявление тенденций
Опубликовано Понедельник, Сентябрь 12, 2011 - admin. В рубрике Поисковые системы Метки: 01% sweet, chicken, recipe, данных, кисло-сладкой, ключевых, шаблон
«Длинный хвост» поисковых запросов, приводящих посетителей на веб-сайты о еде, изучался с помощью инструментов анализа текстовых данных в программе CSV Easy. Анализировались фразы, состоящие из двух, трех и четырех слов. Инструмент выявил, что из всех проанализированных данных больше всего посетителей приводит на сайты следующий генерический (то есть не зависящий от ...