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

Параметр forced_update

Параметр forced_update применяется в декораторах cached и memoize модуля кеширования Flask. Он принимает callable-объект, который вызывается при каждом запросе и получает те же аргументы, что и декорируемая функция. Если callable возвращает True, значение в кеше игнорируется и функция выполняется заново, а результат перезаписывается. Если возвращается False, используется закешированное значение.

Синтаксис

@cache.cached(timeout, forced_update=callable) @cache.memoize(timeout, forced_update=callable)

Пример

Давайте создадим простое приложение с кешем, в котором значение принудительно обновляется, если в запросе присутствует параметр refresh:

from flask import Flask, request from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) def should_refresh(): return request.args.get('refresh') == '1' @app.route('/') @cache.cached(timeout=60, forced_update=should_refresh) def index(): return 'hello'

При первом обращении к адресу / результат "hello" попадёт в кеш. Если затем открыть /?refresh=1, значение будет вычислено заново и снова сохранено.

Пример

Давайте применим forced_update к декоратору memoize, чтобы обновлять результат функции с аргументами:

from flask import Flask, request from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) def should_refresh(): return request.args.get('refresh') == '1' @app.route('/user/<name>') @cache.memoize(timeout=120, forced_update=should_refresh) def user(name): return 'user ' + name

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

"user abcde"

Если запросить /user/abcde?refresh=1, значение для ключа abcde будет пересчитано и перезаписано в кеше.

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

  • декоратор cached,
    который кеширует результат представления
  • декоратор memoize,
    который кеширует результат функции с аргументами
  • параметр timeout,
    который задаёт время жизни значения в кеше
  • параметр unless,
    который запрещает запись значения в кеш
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить