мета-данные страницы
Это старая версия документа!
Константы
Значения констант влияют на работу функций и процедур. Если по каким-то причинам значения заданные здесь не подходят, можно после импорта переназначить эти константы.
| Имя | Значение по умолчанию | Описание |
|---|---|---|
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()