мета-данные страницы
  •  

Это старая версия документа!


Константы

Значения констант влияют на работу функций и процедур. Если по каким-то причинам значения заданные здесь не подходят, можно после импорта переназначить эти константы.

Имя Значение по умолчанию Описание
VARIABLE_PREFIX ru.a0fs.app Префикс переменных и иных элементов, которые сохраняются во внутренних структурах bottle
IP_HEADER X-Real-IP
REQ_ID_HEADER X-Request-Id Заголовок запроса, в котором реверс-прокси хранит уникальный ID запроса. Данные ID полезны для мультисерверной инфраструктуры балансировки с единой точкой хранения журналов. Nginx даёт достаточно уникальный ID для трассировки запроса в журналах приложения. Выставляется этот ID через параметр конфигурации
proxy_set_header X-Request-Id $request_id;
CONN_ID_HEADER X-Conn-ID Идентификатор текущего соединения. Легковесный способ идентифицировать запрос. Добавляется на стороне nginx через:
proxy_set_header X-Conn-ID $connection-$connection_requests;

Функции и процедуры

get_client_ip()

Получение реального адреса клиента.

Пытается получить адрес клиента из специальной переменной реверс-прокси. В случае неудачи, берёт IP узла, откуда пришёл запрос.

Проверки на установку IP доверенным источником не производится. Поскольку приложения не выставляются наружу без прикрытия nginx, который можно соответственно настроить, это не считается проблемой.

get_client_ip([request])

Возвращает: Строку с IP клиента.

Параметр Тип По умолчанию Описание
request bottle.BaseRequest bottle.request Объект запроса, из которого добываются нужные сведения

get_session_fingerprint()

Конструируем некий отпечаток пользовательской сессии.

В качестве параметра принимается всё, что должно участвовать в создании отпечатка. Это всё превращается в строку и подмешивается в хэш. То есть функции можно передать всё, что необходимо для идентификации сессии, и что в состоянии дать значимую строку (при преобразовании str() это должно быть что-то получше чем имя класса и спецсимволы)

get_session_fingerprint(add_params..., [request])

Возвращает: Строку с значением SHA512 от соединённых элементов, данных в параметрах, и некоторых значимых элементов самого запроса (идентификатор браузера и IP источника запроса.

Параметр Тип По умолчанию Описание
add_params Any Параметры (можно добавлять сколько угодно), подмешиваемые в вычисляемый идентификатор клиента.
request bottle.BaseRequest bottle.request Объект запроса, относительно которого берутся параметры для вычисления

get_env()

Возвращает значения из хранилища контекста запроса bottle. Данный контекст уникален для каждого запроса и в нём могут хранится различные объекты Python, сохранённые обрабатывающим приложением.

get_env(name, [default], [request])

Возвращает: Имеющееся в контексте значение, или default, если его сохранили. Тип объекта контролируется разработчиком.

Параметр Тип По умолчанию Описание
name str Имя переменной
default Any None Значение по умолчанию, которое возвращается, если в контексте отсутствует соответствующая переменная
request bottle.BaseRequest bottle.request Объект запроса, из которого добываются нужные сведения

set_env()

Добавляет в контекст переменную, которую затем можно запрашивать через get_env.

set_env(name, value, [request])
Параметр Тип По умолчанию Описание
name str Имя переменной
value Any Значение, сохраняемое в контекст запроса
request bottle.BaseRequest bottle.request Объект запроса, из которого добываются нужные сведения

make_response()

Формирование JSON ответа.

Полезно при программировании JSON REST-API. Даёт больший контроль над ответом.

make_response([data], [status], [cookies], [remove_cookies])

Возвращает: bottle.HTTPResponse, включающий все заданные функции параметры, который можно отдавать в качестве ответа обработчика URL в bottle

Параметр Тип По умолчанию Описание
data Any None Любой объект, которые может быть преобразован в JSON.
status int 200 HTTP-код ответа.
cookies List[Cookie] None Устанавливаемые cookie
remove_cookies List[Union[Cookie, str]] None Удаляемые cookie, заданные как самими объектами Cookie, так и именами

В качестве значения data может быть задана любая осмысленная конструкция. Функция способна к преобразованию в json-вид всех базовых конструкций языка (числа, строки, словари, списки, кортежи). Остальное она приводит к строке и возвращает строку. Конструкции могут быть вложены друг в друга.

get_request_json()

Если запрос имеет тело JSON, и фреймворк это распознал, то функция вернёт этот JSON.

get_request_json()