РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
506 of 643 menu

Параметр timeout

Параметр timeout применяется в методах кеша set, add, set_many, а также в декораторах cached и memoize. Он задаёт время жизни значения в секундах. По истечении этого времени значение считается устаревшим и удаляется из кеша. Если параметр не указан, значение хранится бессрочно (по умолчанию None).

Значением параметра может быть целое число секунд или None. Отрицательное число также означает бессрочное хранение.

Синтаксис

cache.set(key, value, timeout) cache.add(key, value, timeout) cache.set_many(mapping, timeout)
@cache.cached(timeout) @cache.memoize(timeout)

Пример

Запишем значение в кеш с временем жизни 60 секунд:

from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) with app.app_context(): cache.set('key1', 'abcde', timeout=60) res = cache.get('key1') print(res)

Результат выполнения кода:

"abcde"

Пример

Запишем значение с временем жизни 1 секунда и проверим его после истечения срока:

import time from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) with app.app_context(): cache.set('key1', 'abcde', timeout=1) print(cache.get('key1')) time.sleep(2) print(cache.get('key1'))

Результат выполнения кода:

"abcde" None

Пример

Применим параметр timeout в декораторе cached для кеширования ответа на 30 секунд:

from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) @app.route('/') @cache.cached(timeout=30) def index(): return 'hello'

Результат выполнения кода для адреса /:

hello

Пример

Применим параметр timeout в декораторе memoize для кеширования результата функции на 10 секунд:

from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) @cache.memoize(timeout=10) def get_user(user_id): return 'user ' + str(user_id) with app.app_context(): print(get_user(1)) print(get_user(1))

Результат выполнения кода:

"user 1" "user 1"

Смотрите также

  • метод set,
    который записывает значение в кеш
  • метод add,
    который добавляет значение в кеш
  • метод set_many,
    который записывает сразу несколько значений
  • декоратор cached,
    который кеширует результат представления
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить