|
Оглавление
|
Более гранулированный способ использования механизма кэширования даёт управление на уровне отдельных представлений. Оно имеет эффект, аналогичный кэшированию отдельных сайтов. Данный способ кэширования можно применять к любому представлению. Кэширование выполняется с помощью декоратора, который оборачивается вокруг функции представления и изменяет её поведение для использования механизма кэширования. Такой декоратор имеет имя cache_page и находится в модуле django.views.decorators.cache, например: from django.views.decorators.cache import cache_page
def my_view(request, param):
# ...
my_view = cache_page(my_view, 60 * 15)
Аналогично, если вы используете Python версии 2.4 и выше, вы можете использовать особый синтаксис для декоратора. Нижеприведённый пример эквивалентен предыдущему: from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request, param):
# ...
Декоратор cache_page принимает один аргумент,
время жизни страницы в кэше, в секундах. В предыдущем примере,
результат работы представления
Кэш для каждого представления, как и кэш для отдельного сайта,
зависит от URL. Если несколько URL указывают на одно и то же
представление, каждый URL будет кэшироваться отдельно. Продолжая
пример с urlpatterns = ('',
(r'^foo/(\d{1,2})/$', my_view),
)
то запросы к /foo/1/ и /foo/23/ будут закэшированы отдельно, как вы могли ожидать. Но после того как будет произведено кэширование определённого URL, все последующие запросы к нему будут использовать кэш.
Примеры из предыдущей секции имели жёстко определённый факт
кэширования представления, потому что
Это сделать легко: просто оберните функцию представления с
помощью urlpatterns = ('',
(r'^foo/(\d{1,2})/$', my_view),
)
Здесь приведён тот же пример, но уже с функцией
from django.views.decorators.cache import cache_page
urlpatterns = ('',
(r'^foo/(\d{1,2})/$', cache_page(my_view, 60 * 15)),
)
При использовании этого подхода не следует забывать об импорте
функции |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
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 |