Атрибут content_length
Атрибут content_length применяется к объекту
Response и содержит длину тела ответа
в байтах. Значением является целое число или
None, если длина ещё не вычислена. При
отправке ответа Flask автоматически записывает
это значение в заголовок Content-Length.
Атрибут доступен как для чтения, так и для записи.
Если задать значение вручную, Flask не будет
пересчитывать его автоматически, поэтому
устанавливать content_length следует
осторожно - неверное значение приведёт к тому,
что клиент получит некорректный заголовок.
Синтаксис
response.content_length
Пример
Давайте создадим объект Response и посмотрим
на значение атрибута content_length после
передачи данных:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('abcde')
return str(res.content_length)
Результат выполнения кода для адреса '/':
5
Пример
Давайте установим атрибут content_length вручную
и проверим, что значение сохранилось:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('hello')
res.content_length = 100
return str(res.content_length)
Результат выполнения кода:
100
Пример
Давайте посмотрим, как значение атрибута
content_length попадает в заголовки ответа:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('article')
return str(res.headers.get('Content-Length'))
Результат выполнения кода:
7
Смотрите также
-
класс
Response,
который представляет HTTP-ответ во Flask -
метод
calculate_content_length,
который пересчитывает длину тела ответа -
атрибут
content_type,
который хранит MIME-тип ответа -
атрибут
headers,
который содержит заголовки ответа