Метод freeze
Метод freeze применяется к объекту ответа
Response и возвращает его неизменяемую
копию. После вызова метода ответ становится
«замороженным»: его нельзя изменить, но можно
безопасно использовать вне контекста запроса.
Метод не принимает параметров.
Синтаксис
response.freeze()
Пример
Давайте создадим ответ и заморозим его, а затем проверим, что данные сохранились:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.freeze()
return res
Результат выполнения кода для адреса /:
hello
Пример
Давайте заморозим ответ и попробуем изменить его данные после этого:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.freeze()
res.set_data('abcde')
return res
Результат выполнения кода для адреса /:
hello
Как видно из примера, после вызова freeze
изменение данных ответа не приводит к изменению
содержимого - ответ остаётся «замороженным».
Пример
Давайте заморозим ответ и передадим его в отдельную функцию для дальнейшего использования:
from flask import Flask, make_response
app = Flask(__name__)
def process_response(res):
return res.get_data(as_text=True)
@app.route('/')
def index():
res = make_response('article')
res.freeze()
text = process_response(res)
return text
Результат выполнения кода для адреса /:
article