Атрибут cache_control
Атрибут cache_control применяется к объекту ответа
Response
и предоставляет доступ к заголовку Cache-Control.
Через этот атрибут можно задавать директивы кэширования,
такие как no_cache, no_store, max_age,
public, private, must_revalidate и другие.
Значения устанавливаются через свойства возвращаемого объекта.
Синтаксис
response.cache_control
Пример
Давайте запретим кэширование ответа с помощью директивы no_cache:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.cache_control.no_cache = True
return res
Результат заголовка Cache-Control в ответе:
no-cache
Пример
Давайте установим время жизни кэша в 3600 секунд и сделаем ответ публичным:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.cache_control.max_age = 3600
res.cache_control.public = True
return res
Результат заголовка Cache-Control в ответе:
public, max-age=3600
Пример
Давайте установим сразу несколько директив: no_store и must_revalidate:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('article')
res.cache_control.no_store = True
res.cache_control.must_revalidate = True
return res
Результат заголовка Cache-Control в ответе:
no-store, must-revalidate
Смотрите также
-
класс
Response,
который представляет HTTP-ответ во Flask -
атрибут
headers,
который хранит все заголовки ответа -
атрибут
status_code,
который задаёт код состояния ответа -
атрибут
content_type,
который задаёт MIME-тип содержимого ответа