Я предполагаю, что вы используете Flask-Caching
или Flask-Cache
.
Прежде всего, похоже, что вы пытаетесь кэшировать значениеполе формы search_sub
для будущих запросов путем кэширования функции представления result()
.Однако вы кешируете неправильную функцию просмотра.Вам следует кэшировать index_post()
, потому что это представление, которое выдает значение, которое вы хотите сохранить между запросами.
Во-вторых, это не сработает.Прямые вызовы кешированного представления обойдут кэш, поскольку имя ключа по умолчанию соответствует пути маршрута.Вы можете переопределить это, указав свой собственный ключ в аргументе key_prefix
:
@server.route('/index', methods=['POST'])
@server.cache.cached(timeout=240, key_prefix='index_post')
def index_post():
sub = request.form['search_sub']
return sub
Это установит ключ кэша на index_post
.Теперь вызов функции напрямую или в виде представления будет работать.
Это кажется очень запутанным способом решения этой проблемы.Возможно, вам стоит взглянуть на встроенную колбу sessions
.