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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
lib.py:aw_web_tools:btle_tools [02.11.2024 19:29] awgurlib.py:aw_web_tools:btle_tools [12.07.2025 15:17] (текущий) awgur
Строка 16: Строка 16:
 Получение реального адреса клиента. Получение реального адреса клиента.
  
-Пытается получить адрес клиента из специальной переменной реверс-прокси. В случае неудачи, берёт IP узла, откуда пришёл запрос.+Пытается получить адрес клиента из специальной переменной реверс-прокси ''X-Real-IP''. В случае неудачи, берёт IP узла, откуда пришёл запрос.
  
-**Проверки на установку IP доверенным источником не производится.** Поскольку приложения не выставляются наружу без прикрытия ''nginx'', который можно соответственно настроить, это не считается проблемой.+**Проверки на установку IP доверенным источником не производится.** Поскольку приложения не выставляются наружу без прикрытия ''nginx'', который можно соответственно настроить. Это не считается проблемой.
  
 <code> <code>
Строка 43: Строка 43:
  
 ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^ ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
-| ''add_params'' | ''Any'' | -- | Параметры (можно добавлять сколько угодно), подмешиваемые в вычисляемый идентификатор клиента. |+| ''add_params'' | ''Any'' --  | Параметры (можно добавлять сколько угодно), подмешиваемые в вычисляемый идентификатор клиента. |
 | ''request''    | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, относительно которого берутся параметры для вычисления | | ''request''    | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, относительно которого берутся параметры для вычисления |
  
Строка 58: Строка 58:
  
 ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^ ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
-| ''name''    | ''str''                | --                 | Имя переменной |+| ''name''    | ''str''                |  --                | Имя переменной |
 | ''default'' | ''Any''                | ''None''           | Значение по умолчанию, которое возвращается, если в контексте отсутствует соответствующая переменная | | ''default'' | ''Any''                | ''None''           | Значение по умолчанию, которое возвращается, если в контексте отсутствует соответствующая переменная |
 | ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения | | ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения |
Строка 72: Строка 72:
  
 ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^ ^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
-| ''name''    | ''str''                | --                 | Имя переменной | +| ''name''    | ''str''                |  --                | Имя переменной | 
-| ''value''   | ''Any''                | --                 | Значение, сохраняемое в контекст запроса |+| ''value''   | ''Any''                |  --                | Значение, сохраняемое в контекст запроса |
 | ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения | | ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения |
  
Строка 106: Строка 106:
 </code> </code>
  
 +**Возвращает:** Словарь, содержащий данный JSON
  
 +
 +===== get_cookie() =====
 +
 +Получить значение ''cookie'' с заданным именем из текущего запроса.
 +
 +<code>
 +get_cookie(name, [request])
 +</code>
 +
 +**Возвращает:** Строку со значением cookie или ''None''
 +
 +^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
 +| ''name'' | ''str'' |  --  | Имя cookie в запросе |
 +| ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения |
 +
 +
 +===== get_param() =====
 +
 +Получить из запроса переданный пользователем параметр.
 +
 +<code>
 +get_param(name, [param_type], [default], [postprocess], [param_source], [request])
 +</code>
 +
 +**Возвращает:** Переданное пользователем значение
 +
 +^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
 +| ''name'' | ''str'' |  --  | Имя параметра |
 +| ''param_type'' | ''type'' или строка ''json'' | ''str''  | Тип параметра, к которому его следует привести перед возвращением. Если задано '''json' '', будет выполнена попытка декодировать поле как JSON строку. |
 +| ''default''    | ''Any''  | ''None'' | Если не задан параметр, возвращается это |
 +| ''postprocess'' | ''bool'' | ''True'' | Выполнять ли попытку обработки результата |
 +| ''param_source'' | ''None'', '''get' '', '''post' '' | ''None'' | Источник параметра, если не задано, то [[https://bottlepy.org/docs/dev/api.html#bottle.BaseRequest.params|используется все параметры]] |
 +| ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения |
 +
 +Приведение параметров к типу - очень базовая функциональность. Функция не пытается догадываться. Если целевой тип ''bool'' то применяется следующее соответствие:
 +^ Результат ^ Значение параметра ^
 +| ''True'' | ''on'', ''yes'', ''1'', ''true'' |
 +| ''False'' | ''off'', ''no'', ''0'', ''false'' |
 +
 +Если будет что-то ещё, будет возбуждено исключение.
 +
 +Обработка результата одна: если целевой тип - строка, то удаляются лидирующие и завершающие пробелы. Чего не ожидается, скажем, в полях паролей.
 +
 +
 +===== make_log_topic() =====
 +
 +Сгенерировать подходящий префикс журналирования для данного запроса.
 +
 +Помогает в журналировании событий, связанных с запросом.
 +
 +<code>
 +make_log_topic([user], [request])
 +</code>
 +
 +**Возвращает:** Строку, которую можно использовать для инициализации [[lib.py:aw_log:api|объекта лога]]. Строка представляет собой:
 +<code bash>
 +${USER}[${IP} | ${REQ_ID} | ${CONN_ID}] - ${URL}
 +</code>
 +Где:
 +  * ''${USER}'' - Переданное имя пользователя или ''_NOUID_'' если ничего передано не было.
 +  * ''${IP}'' - Результат работы функции [[#get_client_ip|get_client_ip()]].
 +  * ''${REQ_ID}'' - Значение заголовка ''REQ_ID_HEADER'', если он имеется. В противном случае ничего не подставляется и не выводится разделитель.
 +  * ''${CONN_ID}'' - Значение заголовка ''CONN_ID_HEADER'', если он имеется. В противном случае ничего не подставляется и не выводится разделитель.
 +  * ''${URL}'' - Путь переданный в запросе.
 +
 +
 +
 +^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
 +| ''user''    | ''str''                | ''None''           | Имя пользователя. Если ''None'', то данная компонента в префиксе не используется |
 +| ''request'' | ''bottle.BaseRequest'' | ''bottle.request'' | Объект запроса, из которого добываются нужные сведения |
 +
 +
 +===== make_error_response() =====
 +
 +Создание сообщения об ошибке для JSON REST API сервисов.
 +
 +<code>
 +make_error_response(code, err, [msg], [remove_cookies], [cookies])
 +</code>
 +
 +**Возвращает:** ''bottle.HTTPResponse'', включающий все заданные функции параметры, который можно отдавать в качестве ответа обработчика URL в ''bottle''
 +
 +^ Параметр ^ Тип ^ По умолчанию ^ Описание ^
 +| ''code'' | ''int'' |  --  | HTTP-код ответа |
 +| ''err''  | ''Exception'' или ''str'' |  --  | Либо объект исключения, либо название ошибки для обозначения произошедшего пользователю |
 +| ''msg''  | ''str'' | ''None'' | Сообщение об ошибке, которым можно уточнить произошедшее. Для объекта ''Exception'' данное поле будет получено приведением этого объекта к ''str()'' |
 +| ''data'' | ''Any'' | ''None'' | Любой объект, которые может быть преобразован в JSON. |
 +| ''remove_cookies'' | ''List[Union[Cookie, str]]'' | ''None'' | Удаляемые cookie, заданные как самими объектами ''Cookie'', так и именами |
 +| ''cookies'' | ''List[Cookie]'' | ''None'' | Устанавливаемые cookie |