Метод cached
Метод cached применяется к экземпляру класса Cache и
используется как декоратор. Он оборачивает функцию так, что при
первом вызове результат вычисляется и сохраняется в кэше, а при
повторных вызовах возвращается уже готовое значение. Первым
параметром передаётся время жизни кэша в секундах timeout,
вторым - префикс ключа key_prefix, а также доступны
параметры unless и forced_update.
Синтаксис
@cache.cached(timeout, [key_prefix], [unless], [forced_update])
Пример
Давайте закэшируем результат функции на 50 секунд:
from flask import Flask
from flask_caching import Cache
app = Flask(__name__)
app.config['CACHE_TYPE'] = 'simple'
cache = Cache(app)
@cache.cached(timeout=50)
def get_data():
return 'article'
res = get_data()
print(res)
Результат выполнения кода:
"article"
Пример
Давайте зададим собственный префикс ключа через параметр
key_prefix:
from flask import Flask
from flask_caching import Cache
app = Flask(__name__)
app.config['CACHE_TYPE'] = 'simple'
cache = Cache(app)
@cache.cached(timeout=50, key_prefix='my_prefix')
def get_user():
return 'user'
res = get_user()
print(res)
Результат выполнения кода:
"user"
Пример
Давайте используем метод cached внутри маршрута Flask:
from flask import Flask
from flask_caching import Cache
app = Flask(__name__)
app.config['CACHE_TYPE'] = 'simple'
cache = Cache(app)
@cache.cached(timeout=50)
def get_hello():
return 'hello'
@app.route('/')
def index():
return get_hello()
Результат выполнения кода для адреса /:
<+html+>
hello
<-html+>
Смотрите также
-
класс
Cache,
который управляет кэшированием в приложении -
метод
memoize,
который кэширует результат с учётом аргументов функции -
параметр
timeout,
который задаёт время жизни кэша в секундах -
параметр
key_prefix,
который задаёт префикс ключа кэша