Утилиты
Функции URI
Утилиты URI.
Этот модуль предоставляет утилитарные функции для разбора, кодирования, декодирования и других манипуляций с URI. Эти функции недоступны напрямую в модуле falcon, поэтому их необходимо явно импортировать:
from falcon import uri
name, port = uri.parse_host('example.org:8080')
-
falcon.uri.encode(uri) -
Кодирует полный или относительный URI в соответствии с RFC 3986.
RFC 3986 определяет набор «незарезервированных» символов, а также набор «зарезервированных» символов, используемых в качестве разделителей. Эта функция экранирует все другие «запрещенные» символы путем их кодирования в процентах.
Примечание
Эта утилита в среднем случае быстрее, чем аналогичная функция
quoteвurlib. Она также стремится быть проще в использовании, предполагая разумный набор допустимых символов по умолчанию.Параметры: uri (str) – URI или часть URI для кодирования. Если это строка с широким диапазоном символов (т.е., six.text_type), она будет закодирована в массив байтов UTF-8, и любые многобайтовые последовательности будут закодированы в процентах так же, как и раньше.Возвращает: Заэкранированную версию uri, где все недопустимые символы закодированы в процентах.Тип возвращаемого значения: str
-
falcon.uri.encode_value(uri) -
Кодирует строку значения в соответствии с RFC 3986.
Запрещенные символы закодированы в процентах таким образом, что моделируется
urllib.parse.quote(safe="~"). Однако, функция Falcon в среднем случае быстрее, чем аналогичная функцияquoteв urlib. Она также стремится быть проще в использовании, предполагая разумный набор допустимых символов по умолчанию.Все зарезервированные символы объединены в один набор «разделителей», и все в этом наборе экранируется.
Примечание
RFC 3986 определяет набор «незарезервированных» символов, а также набор «зарезервированных» символов, используемых в качестве разделителей.
Параметры: uri (str) – фрагмент URI для кодирования. Предполагается, что он не пересекает границы разделителей, и поэтому все зарезервированные разделители URI, включенные в него, будут экранированы. Если valueявляется строкой с широким диапазоном символов (т.е.,six.text_type), она будет закодирована в массив байтов UTF-8, и любые многобайтовые последовательности будут закодированы в процентах так же, как и раньше.Возвращает: Заэкранированную версию uri, где все недопустимые символы закодированы в процентах.Тип возвращаемого значения: str
-
falcon.uri.decode(encoded_uri)[source] -
Декодирует символы, закодированные в процентах, в URI или строке запроса.
Эта функция моделирует поведение
urllib.parse.unquote_plus, но быстрее. Она также более устойчива, поскольку декодирует закодированные многобайтовые последовательности UTF-8.Параметры: encoded_uri (str) – закодированный URI (полный или частичный). Возвращает: Декодированный URL. Будет типа unicodeв Python 2, ЕСЛИ URL содержал закодированные символы не ASCII, в этом случае UTF-8 предполагается по RFC 3986.Тип возвращаемого значения: str
-
falcon.uri.parse_host(host, default_port=None)[source] -
Разбирает каноническую строку «хост:порт» на части.
Разбирает строку хоста (которая может или не может содержать порт), учитывая, что строка может содержать либо доменное имя, либо IP-адрес. В последнем случае поддерживаются как IPv4, так и IPv6 адреса.
Параметры: host (str) – строка хоста для разбора, необязательно содержащая номер порта. Ключевые аргументы: default_port (int) – номер порта, который нужно вернуть, когда строка хоста не содержит его (по умолчанию None).Возвращает: Кортеж (хост, порт) с разобранными данными из строки хоста, при этом порт преобразован в int. Если строка хоста не указывает порт, вместо него используетсяdefault_port.Тип возвращаемого значения: кортеж
-
falcon.uri.parse_query_string(query_string, keep_blank_qs_values=False, parse_qs_csv=True)[source] -
Разбирает строку запроса в словарь.
Параметры строки запроса предполагают использование стандартного кодирования форм. Возвращаются только параметры со значениями. Например, для строки «foo=bar&flag» эта функция проигнорирует «flag», если не установлен параметр
keep_blank_qs_values.Примечание
Помимо стандартного метода HTML-форм для указания списков путем многократного указания одного параметра, Falcon поддерживает более компактную форму, в которой параметр может быть указан один раз, но задан как
listс запятыми (например, «foo=a,b,c»).При использовании этого формата все запятые, закодированные в uri, не будут обрабатываться Falcon как разделители. Если клиент хочет отправить значение как список, он не должен кодировать запятые вместе со значениями.
Два разных способа указания списков не могут быть смешаны в одной строке запроса для одного и того же параметра.
Параметры: - query_string (str) – разбираемая строка запроса.
-
keep_blank_qs_values (bool) – Установите в
Trueдля возврата полей, даже если у них нет значения (по умолчаниюFalse). Для значений, разделенных запятыми, этот параметр также определяет, сохраняются ли пустые элементы в разобранном списке. -
parse_qs_csv – Установите в
Falseдля отключения разделения параметров запроса по,(по умолчаниюTrue). В зависимости от пользовательского агента, кодирование списков как нескольких появлений одного параметра может быть предпочтительнее. В этом случае установкаparse_qs_csvнаFalseзаставит фреймворк обрабатывать запятые как символы в каждом вхождении значения параметра.
Возвращает: Словарь пар (имя, значение), по одному на каждый параметр запроса. Обратите внимание, что значение может быть одним
str, илиliststr.Тип возвращаемого значения: Исключения: TypeError–query_stringне былstr.
-
falcon.uri.unquote_string(quoted)[source] -
Распаковывает строку RFC 7320 «строка с кавычками».
Параметры: quoted (str) – исходная строка с кавычками Возвращает: Распакованная строка Тип возвращаемого значения: str Исключения: TypeError–quotedне былstr
Разное
-
falcon.deprecated(instructions)[source] -
Помечает метод как устаревший.
Эта функция возвращает декоратор, который можно использовать для маркировки устаревших функций. Применение этого декоратора приведет к выводу предупреждения при использовании функции.
Параметры: instructions (str) – Конкретные рекомендации для разработчика, например: «Пожалуйста, перейдите к add_proxy(...)»
-
falcon.http_now()[source] -
Возвращает текущее время UTC в формате IMF-fixdate.
Возвращает: Текущее время UTC в формате IMF-fixdate, например: «Tue, 15 Nov 1994 12:45:26 GMT». Тип возвращаемого значения: str
-
falcon.dt_to_http(dt)[source] -
Преобразует объект
datetimeв строку HTTP-даты.Параметры: dt (datetime) – Объект datetimeдля преобразования, предполагается, что это UTC.Возвращает: Строка даты в формате RFC 1123, например: «Tue, 15 Nov 1994 12:45:26 GMT». Тип возвращаемого значения: str
-
falcon.http_date_to_dt(http_date, obs_date=False)[source] -
Преобразует строку HTTP-даты в объект datetime.
Параметры: http_date (str) – Строка даты в формате RFC 1123, например: «Tue, 15 Nov 1994 12:45:26 GMT». Ключевые аргументы: obs_date (bool) – Поддержка форматов obs-date в соответствии с RFC 7231, например: «Sunday, 06-Nov-94 08:49:37 GMT» (по умолчанию False).Возвращает: Объект datetime UTC, соответствующий заданной HTTP-дате. Тип возвращаемого значения: datetime Исключения: ValueError– http_date не соответствует ни одному из доступных форматов времени
-
falcon.to_query_str(params, comma_delimited_lists=True, prefix=True)[source] -
Преобразует словарь параметров в строку запроса.
Параметры: -
params (dict) – Словарь параметров, где каждый ключ — имя параметра, а каждое значение — либо
strили что-то, что можно преобразовать вstr, или список таких значений. Еслиlist, значение будет преобразовано в строку значений, разделенных запятыми (например, «thing=1,2,3»). -
comma_delimited_lists (bool) – Установите в
Falseдля кодирования списков значений путем указания нескольких экземпляров параметра (например, «thing=1&thing=2&thing=3»). В противном случае параметры будут закодированы как значения, разделенные запятыми (например, «thing=1,2,3»). По умолчаниюTrue. -
prefix (bool) – Установите в
Falseдля исключения префикса «?» в результирующей строке (по умолчаниюTrue).
Возвращает: Строка URI запроса, включая префикс «?» (если
prefixнеFalse), или пустую строку, если параметры не заданы (в случае, еслиdictпустая).Тип возвращаемого значения: -
params (dict) – Словарь параметров, где каждый ключ — имя параметра, а каждое значение — либо
-
falcon.get_http_status(status_code, default_reason='Unknown')[source] -
Получает код и описание HTTP-статуса по коду.
Параметры: - status_code – целое число или строка, которая может быть преобразована в целое число
- default_reason – текстовое значение по умолчанию, добавляемое к status_code, если соответствия не найдено
Возвращает: код статуса, например: «404 Not Found»
Тип возвращаемого значения: Исключения: ValueError– введенное значение нельзя преобразовать в целое число
-
falcon.get_bound_method(obj, method_name)[source] -
Получает связанный метод заданного объекта по имени.
Параметры: - obj – Объект, в котором следует искать метод.
- method_name – Имя метода для извлечения.
Возвращает: Связанный метод или
Noneесли метод не существует в объекте.Исключения: AttributeError– метод существует, но не связан (вероятнее всего, был передан класс, а не экземпляр этого класса).
-
class falcon.TimezoneGMT[source] -
Класс часового пояса GMT, реализующий интерфейс
datetime.tzinfo.-
dst(dt)[source] -
Возвращает корректировку времени по летнему/зимнему времени (DST).
Параметры: dt (datetime.datetime) – Игнорируется Возвращает: Корректировка DST для GMT, которая всегда равна 0. Тип возвращаемого значения: datetime.timedelta
-
tzname(dt)[source] -
Получить имя часового пояса.
Параметры: dt (datetime.datetime) – Игнорируется Возвращает: “GMT” Тип возвращаемого значения: str
-
utcoffset(dt)[source] -
Получить смещение от UTC.
Параметры: dt (datetime.datetime) – Игнорируется Возвращает: Смещение GMT, которое эквивалентно UTC и всегда равно 0. Тип возвращаемого значения: datetime.timedelta
-
© 2012–2016 by Rackspace Hosting, Inc. and other contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/1.3.0/api/util.html