Кэширование на уровне представлений Django

Имеется возможность более точно управлять кэшированием - ца уровне отдельных представлений. В модуле django.views.decorators.cache определен декоратор cache_page, который автоматически кэширует результат работы представления, например:

from django.views.decorators.cache import cache_page

def my_view(request): # . ..

Читать

Кэширование на уровне сайта Django

Проще всего кэшировать сайт целиком. Для этого в параметр

MIDDLEWARE_CLASSES необходимо добавить строки ‘django.middleware.cache. UpdateCacheMiddleware’ и ‘django.middleware.cache.FetchFromCacheMiddleware’, например:

MIDDLEWARE_CLASSES = (

‘django.middleware.cache.UpdateCacheMiddleware’. ‘ django. middleware.common.CommonMiddleware’. ‘django.middleware.cache.FetchFromCacheMiddleware’.

Читать

Кэширование в Django

Что является фундаментальным свойством динамических веб-сайтов? Правильно, динамичность. При каждом обращении к странице сервер производит самые разные вычисления - запросы к базе данных, отображение шаблонов и другие операции, - чтобы создать визуальный образ, видимый клиенту. С точки зрения накладных расходов это получается гораздо дороже, чем обычное чтение файла с диска.

Читать

Разрешения, группы и сообщения Django

В подсистеме аутентификации есть еще несколько частей, которые раньше мы упоминали лишь мимоходом. Теперь же рассмотрим их подробнее.

Разрешения

Разрешения - это простой способ указать, что пользователь или группа имеют право на выполнение некоторого действия. Обычно работа с разрешениями происходит в административном интерфейсе Django, но ничто не мешает использовать их и в собственном коде.

Читать

Пользователи и аутентификация Django

Механизм сеансов обеспечивает возможность сохранения данных между отдельными запросами. Но надо еще научиться использовать сеансы для аутентификации пользователей. Разумеется, мы не можем слепо верить тому, что пользователь говорит о себе, поэтому необходимо как-то проверить подлинность этой информации.

Естественно, в Django есть средства решения этой типичной задачи (как и многих других). Система аутентификации Django управляет учетными записями пользователей, группами, разрешениями и основанными на cookie пользовательскими сеансами. Эту систему часто называют auth/auth (аутентификация и авторизация). Название говорит о том, что процедура допуска пользователя в систему состоит из двух этапов. Мы должны:

Читать

Подсистема сеансов в Django

С учетом всех ограничений и потенциальных уязвимостей становится понятно, что cookies и сохраняемые сеансы являются примерами болевых точек веб-разработки. Но так как фреймворк Django стремится быть эффективным целителем, в него входит подсистема сеансов, предназначенная для преодоления этих трудностей.

Эта подсистема позволяет сохранять произвольные данные о каждом посетителе сайта. Данные хранятся на сервере, а сам механизм абстрагирует отправку и получение cookies. Внутри cookies передается только свертка идентификатора сеанса, а не сами данные, что позволяет защититься от большинства проблем, связанных с cookies.

Читать

Сеансы, пользователи и регистрация в Django

Пора признаться: до сего момента мы осознанно игнорировали один важный аспект веб-разработки. До сих пор мы представляли посетителей сайта как безликую анонимную массу, налетающую на наши любовно спроектированные страницы.

Но на самом деле это, конечно, неверно. За каждым броузером, обращающимся к нашему сайту, стоит конкретный человек (ну, по большей части). И нельзя забывать, что Интернет по-настоящему имеет смысл, когда используется для соединения людей, а не машин. Разрабатывая неотразимый сайт, мы все же ориентируемся на тех, кто смотрит на экран броузера.

Читать

Вспомогательные классы Django

Подсистема карты сайта предлагает два готовых класса для наиболее распространенных случаев. Они описаны в следующих разделах.

FlatPageSitemap

Класс django.contrib.sitemaps.FlatPageSitemap отыскивает все «плоские страницы» сайта и для каждой создает одну запись в карте. В этих записях присутствует только атрибут location; атрибуты lastmod, changefreq, priority отсутствуют.

Читать

Карта сайта Django

Картой сайта (sitemap) называется хранящийся на веб-сайте XML- файл, который сообщает поисковым системам, как часто изменяются страницы сайта и насколько одни страницы важнее других. Это помогает поисковой системе индексировать сайт более осмысленно.

В качестве примера ниже приводится фрагмент карты сайта проекта Django (http://www.djangoproject.com/sitemap.xml):

Читать

Создание каналов синдицирования Django

В Django имеется высокоуровневая система для создания каналов синдицирования, упрощающая генерацию лент новостей в форматах RSS и Atom.

Что такое RSS и Atom?

RSS и Atom - основанные на XML форматы, позволяющие автоматически обновлять ленту новостей вашего сайта. Подробнее об RSS можно прочитать на сайте http://www.whatisrss.com/, а об Atom - на сайте http://www.atomenabled.org/.

Читать