py.lib
2022-08-05
Child:483727ff89c4
py.lib/webapp/bottle_urils.py
+ Модуль работы с датаклассами и их наполнения из ORM + Утилиты Bottle + Утилиты JWT + Помошник в парсинге конфигурационных файлов
1 # coding: utf-8
2 """\
3 Набор инструментов, для более удобного взаимодействия с фреймворком ``bottle``
4 """
14 VARIABLE_PREFIX = 'ru.a0fs.app' # Префикс переменных и иных структур, которые сохраняются во внутренних
15 # структурах ``bottle``
18 # выставленного реверс-прокси.
24 Класс хранящий ``cookie`` и способный их устанавливать в объекты http-ответов ``bottle``
25 """
32 :param name: Имя ``cookie``
33 :param value: Значение ``cookie``
34 :param max_age: Время жизни ``cookie`` в секундах.
35 :param expires: Значение времени, когда cookie будет удалена, задаётся в виде ``unix timestamp (int)`` или
36 ``datetime``
37 :param path: Префикс пути поиска ресурса на данном сайте, для которого следует отправлять данное ``cookie``
38 :param secure: Отправлять ``cookie`` только по шифрованным каналам связи
39 :param httponly: Сделать ``cookie`` не доступной для ``JavaScript``
40 :param samesite: Не отправлять данную cookie, если запрос пришёл не с того же сайта (анализируется заголовок
41 referer)
42 :param domain: Имя домена в рамках которого выставляется cookie. В современных браузерах может и глючить
43 """
61 }
75 Получение реального адреса клиента
76 """
88 Конструируем некий отпечаток пользовательской сессии.
90 В качестве параметра принимается всё, что должно участвовать в создании отпечатка.
91 Это всё превращается в строки и подмешивается в хэш
92 """
102 Более интеллектуальная процедура преобразования базовых типов
104 :param value: Значение, которое необходимо преобразовать
105 :param new_value_type: Тип в который необходимо преобразовать значение
106 :param postprocess: Применять ли последующую обработку полученного результата
107 :returns: Значение ``value`` преобразованное к типу ``value_type``
108 """
132 Возвращает значения из хранилища контекста запроса bottle
133 """
145 Устанавливает значения в хранилище контекста запроса bottle
146 """
155 Формирует ``API`` ответ.
156 """
173 Если в запросе, который мы обрабатываем в текущий момент, использовалась посылка данных JSON, получить их.
174 """
185 Получить значение ``cookie`` с заданным именем из текущего запроса.
186 """
194 Получить из обрабатываемого на данный момент запроса значения установленного параметра. Обрабатываются как
195 ``GET``, так и ``POST`` параметры, если иное не указано конкретно.
197 :param name: Имя параметра
198 :param param_type: Тип, в который нужно преобразовать полученный параметр
199 :param default: Значение, отдаваемое, если параметр не установлен в запросе
200 :param postprocess: Производить ли постобработку параметра
201 :param param_source: Источник параметра, [``get``, ``post``]
202 :returns Полученное из запроса значение
203 """
238 Создать новый словарь на основе существующего, добавив в него только нужные ключи
239 """
246 Преобразует значение ``val`` в пригодное для преобразования в json значение.
247 """
269 Создаём строку, идентифицирующую данный запрос для журналирования операций.
271 :param user: Если известен пользователь, задаём его здесь
272 """
297 Создание сообщения об ошибке для JSON REST API сервисов
299 :param code: HTTP-код ответа
300 :param err: Либо объект исключения, либо название ошибки
301 :param msg: Если не ``None`` - сообщение об ошибке. В противном случае, если ``err`` является исключением,
302 сообщение берётся из ``str(err)`` если нет, становится пустой строкой.
303 :param remove_cookies: Список cookie, которые должны быть удалены с клиента.
304 :param cookies: Набор cookies вставляемый в конструктор ответа без изменений. Читать в соответствующем
305 параметре ``make_response``
306 """