Сообщить об ошибке.

Класс Response() модуля flask в Python

Объект ответа приложения Flask на запрос

Синтаксис:

import flask

flask.Response(response=None, status=None, 
               headers=None, mimetype=None, 
               content_type=None, direct_passthrough=False)

Параметры:

  • response=None - ответ в виде итератора строк или bytes,
  • status=None - HTTP-статус, строка или целое число,
  • headers=None - объект werkzeug.datastructures.Headers,
  • mimetype=None - тип mimetype контента,
  • content_type=None - поле заголовка Content-Type,
  • direct_passthrough=False - отвечает за передачу тела ответа напрямую как итерацию WSGI

Возвращаемое значение:

Описание:

Класс Response() модуля flask создает объект ответа, который по умолчанию используется в Flask и в приложении доступен через прокси-объект flask.response.

Работает так же, как объект ответа от Werkzeug, но по умолчанию настроен на mimetype равный text/html. Часто нет необходимости создавать этот объект самостоятельно, так как это легко можно сделать при помощи функции flask.make_response() когда это потребуется.

Если необходимо заменить используемый по умолчанию объект ответа, то можно создать подкласс flask.Response и установить созданный подкласс в app.response_class.

Атрибуты и методы объекта ответа Response.


Response.accept_ranges:

Атрибут Response.accept_ranges представляет собой заголовок ответа Accept-Ranges. Даже если имя указывает на то, что поддерживается несколько значений, это должен быть только один строковый токен.

Значения 'bytes' и 'none' являются общими.

Response.access_control_allow_credentials:

Свойство Response.access_control_allow_credentials представляет собой заголовок ответа Access-Control-Allow-Credentials, проверяет, может ли браузер передавать учетные данные коду JavaScript.

Как часть предварительного запроса, он указывает, могут ли учетные данные использоваться в кросс-доменном запросе.

Response.access_control_allow_headers:

Атрибут Response.access_control_allow_headers представляет собой заголовок ответа Access-Control-Allow-Headers.

Это заголовки, которые могут быть отправлены в кросс-доменном запросе.

Response.access_control_allow_methods:

Атрибут Response.access_control_allow_methods представляет собой заголовок ответа Access-Control-Allow-Мethods.

Это HTTP-методы, которые можно использовать в кросс-доменном запросе.

Response.access_control_allow_origin:

Атрибут Response.access_control_allow_origin представляет собой заголовок ответа Access-Control-Allow-Origin.

Значения 'origin' или '*' для любого источника, который может запрашивать кросс-доменный запрос.

Response.access_control_expose_headers:

Атрибут Response.access_control_expose_headers представляет собой заголовок ответа Access-Control-Expose-Headers.

Позволяет указать серверу, какие заголовки ответа должны быть доступны для кода JavaScript, запущенным в браузере, в ответ на кросс-доменный запрос.

Какие заголовки могут быть разделены браузером для кода JavaScript.

Response.access_control_max_age:

Атрибут Response.access_control_max_age представляет собой заголовок ответа Access-Control-Max-Age.

Максимальный возраст в секундах, для которого можно кэшировать настройки контроля доступа, то есть информация, содержащаяся в заголовках Access-Control-Allow-Methods и Access-Control-Allow-Headers.

Response.add_etag(overwrite=False, weak=False):

Метод Response.add_etag() добавляет заголовок ответа ETag для текущего ответа, если его еще нет.

Заголовок ETag HTTP-ответа - это идентификатор определенной версии ресурса. Он позволяет кэшировать более эффективно и экономить пропускную способность канала, так как веб-серверу не нужно повторно отправлять полный ответ, если содержимое не изменилось. Кроме того, теги etag помогают предотвратить одновременное обновление ресурса от перезаписи друг друга.

Если ресурс по заданному URL-адресу изменяется, необходимо сгенерировать новое значение Etag. Их сравнение может определить, являются ли два ресурса одинаковыми. Таким образом, Etag похож на отпечатки пальцев и могут использоваться некоторыми серверами для отслеживания.

Изменено в версии 2.0: для генерации значения, используется алгоритм SHA-1. Алгоритм MD5 может быть недоступен в некоторых средах.

Response.age:

Атрибут Response.age - представляет собой заголовок ответа Age, содержит время в секундах, в течение которого объект ответа находился в прокси-кэше.

Заголовок Age обычно близок к нулю. Если это так Age: 0, то он, вероятно, был просто извлечен с исходного сервера; в противном случае, он вычисляется как разница между текущей датой прокси-сервера и общим заголовком Date, включенным в HTTP-ответ

Значения возраста являются неотрицательными десятичными целыми числами, представляющими время в секундах.

Response.allow:

Свойство Response.allow содержит набор HTTP-методов, поддерживаемых ресурсом, определенным URI запроса. Представляет собой объект werkzeug.datastructures.HeaderSet. Ведет себя подобно множеству set Python:

>>> resp.allow(['foo', 'bar'])
# добавит значение заголовка
>>> resp.allow.add('baz'])
>>> resp.allow
# HeaderSet(['foo', 'bar', 'baz'])

# удалит значение заголовка
>>> resp.allow.discard('foo')
# преобразует в строку HTTP-заголовка.
>>> resp.allow.to_header()
# эквивалентно
>>> str(resp.allow)
# очистит заголовок.
>>> resp.allow.clear()

Цель этого поля - строго информировать получателя о допустимых методах, связанных с ресурсом. Поле заголовка Allow ДОЛЖНО присутствовать в ответе 405 Method Not Allowed.

Response.cache_control:

Свойство Response.cache_control представляет собой заголовок ответа Cache-Control в формате werkzeug.datastructures.ResponseCacheControl.

Этот заголовок используется для указания директив, которым ДОЛЖНЫ подчиняться все механизмы кэширования в цепочке запрос/ответ. Инструкции кэширования однонаправленные: заданная инструкция в запросе не подразумевает, что такая же инструкция будет указана в ответе

Response.calculate_content_length():

Метод Response.calculate_content_length() если доступен, то возвращает длину int тела ответа сервера, в противном случае - None.

Response.call_on_close(func):

Метод Response.call_on_close() добавляет функцию func во внутренний список функций, которые должны вызываться как часть закрытия ответа (в конце ответа сервера).

Начиная с версии 0.7 эта функция также возвращает переданную функцию, поэтому ее можно использовать в качестве декоратора.

Response.close():

Метод Response.close() закрывает обернутый ответ, если это возможно. Также можно использовать объект в операторе with, который автоматически его закроет.

Response.content_encoding:

Атрибут Response.content_encoding представляет собой заголовок ответа Content-Encoding.

Используется как модификатор типа медиа. Если он присутствует, то его значение указывает, какие дополнительные кодировки контента были применены к телу объекта и, следовательно, какие механизмы декодирования должны быть применены для получения медиа-типа, на который ссылается значение заголовка Content-Type.

Response.content_language:

Свойство Response.content_language представляет собой заголовок ответа Content-Language в формате werkzeug.datastructures.HeaderSet.

Свойство Response.content_language ведет себя как Response.allow.

Используется для описания языков контента доступных для аудитории, позволяя таким образом пользователю выбрать язык в соответствии со своими предпочтениями. Например, если установлен заголовок "Content-Language: de-DE", это говорит о том, что документ предназначен для носителей немецкого языка (однако это не означает, что документ написан на немецком языке). Это может быть документ на английском языке в рамках языкового курса для носителей немецкого языка).

Если заголовок Content-Language не указан, то по умолчанию предполагается, что содержимое предназначено для всех языковых аудиторий. Также допустимо использование в заголовке нескольких языковых тегов. Заголовок Content-Language может применяться не только к текстовым документам но и другим типам контента.

Response.content_length:

Атрибут Response.content_length представляет собой заголовок ответа Content-Length, указывает размер тела объекта в десятичном числе OCTET, отправленных получателю, или, в случае метода HEAD, размер тела объекта, которое было бы отправлено, если бы запрос был GET.

Response.content_location:

Атрибут Response.content_location представляет собой заголовок ответа Content-Location. Заголовок указывает альтернативное расположение возвращаемых данных. Основное использование заключается в указании URL-адреса ресурса, передаваемого в результате согласования содержимого.

Заголовки Location и Content-Location разные. Location указывает URL-адрес перенаправления, а Content-Location указывает прямой URL-адрес для доступа к ресурсу без дальнейшего согласования содержимого в будущем. Location - это заголовок, связанный с ответом, а Content-Location связан с возвращаемыми данными. Без примеров это различие может показаться абстрактным.

Допустим, API сайта может возвращать данные в форматах JSON, XML или CSV. Если URL-адрес для конкретного документа находится по адресу https://example.com/documents/foo, то сайт может возвращать разные URL-адреса для размещения содержимого в зависимости от заголовка запроса Accept. Например:

  • Accept: application/json, text/json -> Content-Location: /documents/foo.json
  • Accept: application/xml, text/xml -> Content-Location: /documents/foo.xml
  • Accept: text/plain, text/* -> Content-Location: /documents/foo.csv

Эти URL-адреса являются примерами, сайт может обслуживать различные типы файлов с любыми шаблонами URL, например, такими как параметр строки запроса: /documents/foo?format=json, /documents/foo?format=xml и так далее.

Response.content_md5:

Атрибут Response.content_md5 представляет собой заголовок ответа Content-MD5, как определено в RFC 1864. Это дайджест MD5 тела объекта с целью обеспечения сквозной проверки целостности сообщения (MIC) тела объекта.

Примечание: MIC хорош для обнаружения случайной модификации тела объекта при передаче, но не является защитой от злонамеренных атак.

Response.content_range:

Свойство Response.content_range представляет собой заголовок ответа Content-Range в формате werkzeug.datastructures.ContentRange. Свойство доступно, даже если заголовок не задан.

Заголовок указывает, где в сообщении с полным текстом находится частичное сообщение, например Content-Range: bytes 200-1000/67589.

Синтаксис заголовка:

Content-Range: <unit> <range-start>-<range-end>/<size>
Content-Range: <unit> <range-start>-<range-end>/*
Content-Range: <unit> */<size>

Response.content_security_policy:

Атрибут Response.content_security_policy представляет собой заголовок ответа Content-Security-Policy.

Добавляет дополнительный уровень безопасности, помогающий обнаруживать и смягчать определенные типы атак, таких как Cross Site Scripting (XSS) и атаки внедрения данных. Спектр применения этих атак включает, но не ограничивается кражей данных, подменой страниц и распространением зловредного ПО.

Дополнительно смотрите материал "Безопасность веб-приложения на Flask".

Response.content_security_policy_report_only:

Атрибут Response.content_security_policy_report_only представляет собой заголовок ответа Content-Security-Policy-Report-Only

Этот заголовок позволяет веб-разработчикам экспериментировать с политиками, отслеживая (но не применяя) их действие, тем самым помогая обнаруживать определенные типы атак. Отчеты о нарушениях состоят из документов JSON, отправленных по запросу HTTP POST на указанный URI.

Response.content_type:

Атрибут Response.content_type представляет собой заголовок ответа Content-Type используется для того, чтобы определить MIME тип ресурса или, в случае метода HEAD, тип носителя, который был бы отправлен, если бы запрос был GET.

В ответах сервера заголовок Content-Type сообщает клиенту, какой будет тип передаваемого контента. В некоторых случаях браузеры пытаются сами определить MIME тип передаваемого контента, но их реакция может быть неадекватной. Чтобы предотвратить такие ситуации, можно установить в заголовке X-Content-Type-Options значение 'nosniff'.

В запросах, таких, как POST или PUT, клиент сообщает серверу тип отправляемых данных.

Response.cross_origin_embedder_policy:

Атрибут Response.cross_origin_embedder_policy представляет собой заголовок ответа Cross-Origin-Embedder-Policy.

Этот заголовок предотвращает/запрещает загрузку документа любыми ресурсами в кросс-доменном запросе (разными источниками), которые явно не предоставляют разрешение на документ.

Значения должны быть членами перечисления werkzeug.http.COEP.

Response.cross_origin_opener_policy:

Атрибут Response.cross_origin_opener_policy представляет собой заголовок ответа Cross-Origin-Opener-Policy. Значения атрибута должны быть членами перечисления werkzeug.http.COEP.

Этот заголовок позволяет гарантировать, что документ верхнего уровня не разделяет группу контекста просмотра с документами из разных источников.

Заголовок ответа Cross-Origin-Opener-Policy изолирует документ, и потенциальные злоумышленники не смогут получить доступ к глобальному объекту, если бы они открывали его во всплывающем окне, предотвращая серию атак с перекрестным происхождением, получивших название XS-Leaks.

Если документ с перекрестным происхождением с Cross-Origin-Opener-Policy открывается в новом окне, в открывающем документе не будет ссылки на него, а свойство window.opener нового окна будет иметь значение null. Это позволяет иметь больший контроль над ссылками на окно, чем rel=noopener, который влияет только на исходящую навигацию.

Response.data:

Свойство Response.data представляет собой дескриптор, вызывающий Response.get_data() и Response.set_data().

Response.date:

Атрибут Response.date - это заголовок ответа Date в формате datetime.datetime, представляет дату и время, когда было отправлено сообщение, и имеет ту же семантику, что и исходная дата в RFC 822.

Изменено в версии 2.0: объект datetime.datetime учитывает часовой пояс.

Response.delete_cookie(key, path='/', domain=None, secure=False, httponly=False, samesite=None):

Метод Response.delete_cookie() удаляет файл cookie. Если ключа не существует - исключение не поднимается (происходит тихий сбой).

Принимаемые аргументы метода:

  • key: ключ (имя) файла cookie, подлежащего удалению.
  • path: путь, которым был ограничен файл cookie.
  • domain: домен, которым был ограничен файл cookie.
  • secure: если True, то файл cookie будет доступен только по протоколу HTTPS..
  • httponly: если True, то запретит доступ JavaScript к файлу cookie.
  • samesite: ограничивает область действия cookie только прикреплением к запросам, относящимся к тому же сайту.

Response.direct_passthrough:

Атрибут Response.direct_passthrough передает тело ответа напрямую как итерацию WSGI.

Атрибут можно использовать, когда необходимо пропустить некоторые ненужные проверки, а тело ответа представляет собой двоичный файл или другой итератор байтов.

Чтобы НЕ устанавливать значение вручную, необходимо использовать функцию werkzeug.utils.send_file().

Response.expires:

Атрибут Response.expires представляет собой заголовок ответа Expires в формате datetime.datetime. В нем указывается дата/время, после которых, ответ считается устаревшим. Устаревшая запись кэша обычно не может быть возвращена.

Изменено в версии 2.0: объект datetime.datetime учитывает часовой пояс.

Response.force_type(response, environ=None):

Метод класса Response.force_type() обеспечивает, чтобы ответ WSGI был объектом ответа текущего типа. Werkzeug будет использовать Response внутренне во многих ситуациях, таких как исключения. Если для исключения вызывается get_response(), то вернетесь к обычному объекту Response, если даже используется собственный подкласс.

Этот метод может принудительно применять данный тип ответа, а также преобразует произвольные вызываемые объекты WSGI в объекты ответа, если предоставляется окружение:

# преобразовывает объект ответа Werkzeug в экземпляр подкласса `MyResponseClass`.
response = MyResponseClass.force_type(response)

# преобразовывает любое приложение WSGI в объект ответа
response = MyResponseClass.force_type(response, environ)

Это особенно полезно, если необходимо обрабатывать ответы в главном диспетчере и использовать функции, предоставляемые собственным подклассом.

Имейте в виду, что это изменит объекты ответа, если это возможно!

Принимаемые аргументы:

  • response: объект ответа Response или приложение WSGI.
  • environ: Объект среды WSGI (WSGIEnvironment).

Response.freeze(no_etag=None):

Метод Response.freeze() делает объект ответа готовым к процессу pickled. Метод ничего не возвращает.

Изменено в версии 2.0: добавляется заголовок Etag, аргумент no_etag устарел и будет удален в Werkzeug 2.1.

Response.from_app(app, environ, buffered=False):

Метод класса Response.from_app() создает новый объект ответа из выходных данных приложения. Метод класса работает лучше всего, если передать ему приложение, которое все время возвращает генератор.

Иногда приложения могут использовать вызываемую функцию write(), возвращаемую функцией start_response. Это поведение пытается автоматически разрешить такие крайние случаи. Но если на выходе получается ожидаемый результат, то следует установить аргумент buffered=True, что обеспечит буферизацию.

Принимаемые аргументы:

  • app: приложение WSGI для выполнения (WSGIApplication).
  • environ: среда выполнения WSGI (WSGIEnvironment).
  • buffered: значение True для принудительной буферизации.

Response.get_app_iter(environ):

Метод Response.get_app_iter() возвращает итератор приложения для данной среды environ. В зависимости от HTTP-метода запроса и текущего кода состояния, возвращаемое значение может быть пустым ответом.

Если метод запроса HEAD или код состояния находится в диапазоне, в котором спецификация HTTP требует пустого ответа, возвращается пустая итерация.

Принимаемые аргументы:

  • environ: WSGI среда запроса (WSGIEnvironment).

Response.get_data(as_text=False):

Метод Response.get_data() строковое представление тела ответа. Всегда, когда вызывается этот метод, повторяющийся ответ кодируется и выравнивается. Это может привести к нежелательному поведению при потоковой передаче больших данных.

Такое поведение можно отключить, установив значение Response.implicit_sequence_conversion=False.

Если значение as_text=True, то возвращаемое значение будет представлять собой декодированную строку.

Response.get_etag():

Метод Response.get_etag() возвращает кортеж в виде (Etag, is_weak). Если Etag отсутствует, то возвращаемое значение будет (None, None).

Response.get_json(force=False, silent=False):

Метод Response.get_json() содержит проанализированные данные JSON. Полезно во время тестирования.

Если mimetype НЕ указывает на JSON (application/json, смотрите Response.is_json()), то метод ничего не возвращает.

В отличие от метода объекта запроса Request.get_json(), результат не кэшируется.

Принимаемые аргументы:

  • force: (bool) – Если True, то значение mimetype игнорируется и всегда пытается анализировать JSON.
  • silent: (bool) – Если True, то отключит появление ошибок при синтаксическом анализе.

Response.get_wsgi_headers(environ):

Метод Response.get_wsgi_headers() автоматически вызывается непосредственно перед началом ответа и возвращает заголовки, измененные для данной среды environ. Метод возвращает копию заголовков из ответа с некоторыми изменениями, применяемыми при необходимости.

Например, заголовок Location (если он есть) соединен с корневым URL-адресом среды environ. Кроме того здесь, для определенных кодов состояния, длина содержимого автоматически устанавливается равной нулю.

Принимаемые аргументы:

  • environ: среда запроса WSGI (WSGIEnvironment).

Response.get_wsgi_response(environ):

Метод Response.get_wsgi_response() возвращает окончательный ответ WSGI в виде кортежа.

Первым элементом в кортеже является итератор приложения, вторым - статус, а третьим - список заголовков. Возвращаемый ответ создается специально для данной среды environ. Например, если HTTP-метод запроса в среде WSGI является 'HEAD', то ответ будет пустым, и будут присутствовать только заголовки и код состояния.

Принимаемые аргументы:

  • environ: среда запроса WSGI (WSGIEnvironment).

Response.is_json: bool:

Свойство Response.is_json проверяет, указывает ли тип mimetype на данные JSON, либо application/json, либо application/*+json.

Response.is_sequence: bool:

Свойство Response.is_sequence будет True, если итератор буферизован. Объект ответа будет считать итератор буферизованным, если атрибутом ответа является список или кортеж.

Response.is_streamed: bool:

Свойство Response.is_streamed будет True, если ответ передается потоком (т.е. ответ не является итератором, с информацией о длине). В этом случае потоковая передача означает, что нет информации о количестве итераций. Это свойство обычно возвращает True, если генератор передается объекту ответа.

Свойство полезно для проверки перед применением какой-либо фильтрации сообщений, которая не должна выполняться для потоковых ответов.

Response.iter_encoded():

Метод Response.iter_encoded() возвращает итератор ответа, закодированный с помощью кодировки ответа. Если объект ответа вызывается как приложение WSGI, то возвращаемое значение этого метода используется в качестве итератора приложения, если только не был активирован Response.direct_passthrough.

Response.json:

Свойство Response.json содержит проанализированные данные JSON, если тип mimetype указывает на JSON (application/json, смотрите Response.is_json()).

Это свойство вызывает Response.get_json() с аргументами по умолчанию.

Response.last_modified:

Атрибут Response.last_modified представляет собой заголовок ответа Last-Modified с последним изменением документа в формате datetime.datetime.

Этот HTTP-заголовок ответа содержит дату и время, когда ресурс был изменен в последний раз. Он используется в качестве средства проверки, является ли полученный или сохраненный ресурс одним и тем же. это запасной механизм и менее точный, чем заголовок ETag. Его значение используют условные запросы, содержащие заголовки If-Modified-Since или If-Unmodified-Since.

Изменено в версии 2.0: Объект datetime.datetime зависит от часового пояса.

Response.location:

Атрибут Response.location представляет собой заголовок ответа Location. Заголовок используется для перенаправления получателя в местоположение, отличное от URI запроса, для завершения запроса или идентификации нового ресурса.

Response.make_conditional(request_or_environ, accept_ranges=False, complete_length=None):

Метод Response.make_conditional() делает ответ на запрос условным. Этот метод работает лучше всего, если для ответа уже был определен ETag. Для добавления ETag можно использовать метод Response.add_etag(). Если вызывается без ETag, то устанавливается только заголовок Date.

Response.make_conditional() работает только для HTTP-методов в запросе Request или в среде WSGIEnvironment является GET или HEAD.

Для оптимальной производительности при обработке запросов диапазона рекомендуется, чтобы объект данных ответа реализовывал методы, seek и tell, как описано в io.IOBase. Объекты, возвращаемые функцией wrap_file(), автоматически реализуют эти методы.

Метод не удаляет тело ответа, т.к. это то, что делает магический метод __call__() автоматически.

Возвращает себя, чтобы можно было выполнить return resp.make_conditional(req), но изменяет объект на месте.

Если заголовок диапазона не может быть проанализирован или удовлетворен поднимает исключение RequestedRangeNotSatisfiable.

Принимаемые аргументы:

  • request_or_environ: объект запроса или среда WSGI (WSGIEnvironment), которые будут использоваться для создания условий для ответа.
  • accept_ranges: определяет значение заголовка Accept-Ranges. Если значение False (по умолчанию), то заголовок не задан. Если значение True, оно будет установлено в 'bytes'. Если None, то будет установлено значение 'none'. Если значение является строкой, то метод будет использовать это значение.
  • complete_length: будет использоваться только в допустимых запросах с заголовком Range. Он устанавливает значение полной длины Content-Range и вычисляет реальное значение Content-Length. Этот аргумент является обязательным для успешного выполнения запросов с заголовком Range.

Изменено в версии 2.0: Обработка Range пропускается, если длина равна 0, и НЕ вызывает ошибку 416 Range Not Satisfiable.

Response.make_sequence():

Метод Response.make_sequence() преобразует итерируемый ответ в список. По умолчанию это происходит автоматически.

Если функция Response.implicit_sequence_conversion=False отключена, то этот метод не вызывается автоматически, и некоторые свойства могут вызывать исключения. Метод также кодирует все элементы.

Response.max_cookie_size: int:

Свойство Response.max_cookie_size предоставляет доступ, только для чтения, к ключу конфигурации MAX_COOKIE_SIZE.

Response.mimetype: Optional[str]:

Свойство Response.mimetype значение mimetype (тип содержимого без кодировки и т.д.).

Response.mimetype_params: Dict[str, str]:

Свойство Response.mimetype_params содержит словарь с параметрами mimetype. Например, если тип содержимого text/html; charset=utf-8, то результатом будет {'charset': 'utf-8'}.

Response.retry_after:

Свойство Response.retry_afterпредставляет собой заголовок ответа Retry-After в формате datetime.datetime

Этот заголовок HTTP-ответа показывает, как долго клиент должен подождать перед последующим запросом. Есть три основных случая, в которых следует использовать этот заголовок:

  • Retry-After отправляется с кодом 503 (Service Unavailable), отображая примерное время, через которое сервис будет доступен.
  • Retry-After отправляется с кодом 429 (Too Many Requests), отображая, сколько ждать перед следующим запросом.
  • Retry-After отправляется с кодом переадресации (например, 301 (Moved Permanently)), отображает минимальное время, которое клиент должен подождать перед переадресацией.

Изменено в версии 2.0: Объект datetime.datetime зависит от часового пояса.

Response.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None):

Метод Response.set_cookie() устанавливает файл cookie.

Выдается предупреждение, если размер заголовка файла cookie превышает max_cookie_size, но заголовок все равно будет установлен.

Принимаемые аргументы:

  • key: строка, ключ/имя устанавливаемого файла cookie.
  • value: строка, значение куки.
  • max_age: время жизни cookie, указывается в секундах. По умолчанию None, это означает что cookie уничтожиться, после окончания сеанса браузера. Может быть int или datetime.timedelta().
  • expires: должен быть объектом datetime.datetime() или метка времени UNIX, обозначенная как int или float.
  • path: строка, которая ограничивает cookie заданным путем, по умолчанию он будет охватывать весь домен.
  • domain: строка, которая устанавливает междоменный файл cookie. Например, domain='.example.com' установит cookie, доступный для чтения доменам www.example.com, foo.example.com и т. д. В противном случае cookie будет доступен для чтения только домену, который его установил.
  • secure: если True, то cookie будет доступен только через HTTPS.
  • httponly: если True, то запретить доступ JavaScript к файлу cookie.
  • samesite: строка, которая ограничивает действие cookie. Другими словами, cookie передаются только запросам, которые относятся к "samesite".

Response.set_data(value):

Метод Response.set_data() задает новое тело в качестве ответа сервера, в виде строки. Значение должно быть строкой или байтовой строкой. Если тело задано в виде строки str , то она кодируется в кодировке ответа (по умолчанию utf-8).

Response.set_etag(etag, weak=False):

Метод Response.set_etag() устанавливает заголовок ETag или переопределяет старый, если он был.

Дополнительно смотрите метод Response.add_etag.

Response.status: str:

СвойствоResponse.status содержит код состояния HTTP в виде строки.

Response.status_code: int:

Свойство Response.status_code содержит код состояния HTTP в виде целого числа.

Response.stream:

Свойство Response.stream содержит ответ, в качестве потока werkzeug.wrappers.response.ResponseStream только для записи.

Response.vary:

Свойство Response.vary представляет собой заголовок ответа Vary в виде объекта werkzeug.datastructures.HeaderSet.

Заголовок Vary должен быть установлен для ответа 304 Not Modified точно так же, как он был бы установлен для эквивалентного ответа 200 OK.

Этот заголовок определяет, как сопоставить будущие заголовки запроса, для принятия решения о том, можно ли использовать кешированный ответ, а не запрашивать новый с исходного сервера. Он используется сервером для указания того, какие заголовки он использовал при выборе представления ресурса в алгоритме согласования контента.

Свойство Response.vary ведет себя как Response.allow.

Response.www_authenticate:

Свойство Response.www_authenticate содержит значение заголовка WWW-Authenticate в разобранной форме, в виде объекта werkzeug.datastructures.WWWAuthenticate.