Утилиты
Функции 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] -
Разбор канонической строки «host:port» на части.
Разбирает строку хоста (которая может или не может содержать порт), учитывая, что строка может содержать либо доменное имя, либо IP-адрес. В последнем случае поддерживаются как IPv4, так и IPv6 адреса.
Параметры: Возвращает: Кортеж (host, port) из полученной строки хоста, с портом, преобразованным в
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, фреймворк будет обрабатывать запятые как литеральные символы в каждом появляющемся значении параметра.
Возвращает: Словарь пар (name, value), по одному на каждый параметр запроса. Обратите внимание, что value может быть одним
str, илиlistизstr.Тип возвращаемого значения: Возможные исключения: 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.
Параметры: Возвращает: Объект UTC datetime, соответствующий заданной HTTP-дате.
Тип возвращаемого значения: Исключения: 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.2.0/api/util.html