|
Оглавление
|
Изредка кэширование всей страницы не даёт ожидаемой пользы и, если честно, является неудобным. Возможно, к примеру, ваш сайт содержит представление, чей результат зависит от нескольких сложных запросов и постоянно меняется. В таком случае, использование кэширования для всей страницы будет всё портить, так как некоторая часть данных будет постоянно меняться, но вам всё ещё необходимо использовать механизм кэширования. Для случаев подобных этому, Django предоставляет простой интерфейс низкого уровня к механизму кэширования, который располагается в модуле django.core.cache. Вы можете использовать API низкого уровня для хранения объектов в кэше на любом уровне гранулярности, который вам потребуется. Вы можете поместить в кэш любой объект языка Python, который может быть сериализован с помощью модуля pickle: строки, словари, списки моделей объектов и так далее. (Почти каждый объект языка Python может быть сериализован, обратитесь к документации Python по модулю pickle.) Вот так происходит импортирование API: >>> from django.core.cache import cache
Простые методы >>> cache.set('my_key', 'hello, world!', 30)
>>> cache.get('my_key')
'hello, world!'
Аргумент timeout_seconds является необязательным, а его значение по умолчанию было указано ранее.
Если объект не существует в кэше или сам кэш недоступен, то
# Ждём 30 секунд пока 'my_key' "протухнет"...
>>> cache.get('my_key')
None
>>> cache.get('some_unset_key')
None
Мы не рекомендуем хранить строковое значение None в кэше, потому что вы не будете иметь возможность отличить ваше сохранённое None от отсутствия значения в кэше, которое тоже возвращается как None.
Функция >>> cache.get('my_key', 'has expired')
'has expired'
Для получения нескольких значений из кэша за один запрос надо
использовать метод >>> cache.set('a', 1)
>>> cache.set('b', 2)
>>> cache.set('c', 3)
>>> cache.get_many(['a', 'b', 'c'])
{'a': 1, 'b': 2, 'c': 3}
Если запрашиваемое значение не существует или «протухло», то оно не будет включено в словарь: >>> cache.get_many(['a', 'b', 'c', 'd'])
{'a': 1, 'b': 2, 'c': 3}
Наконец, вы можете явно удалять значения из кэша с помощью
метода >>> cache.delete('a')
Метод |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
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 |