Справочные данные по URL
werkzeug.urls
werkzeug.urls используется для предоставления нескольких функций-обёртки для Python 2 urlparse, основная цель которых — обойти поведение Py2 stdlib и отсутствие поддержки Unicode. Хотя эта ситуация уже была несколько неудобной, она стала ещё сложнее, поскольку Python 3 urllib.parse на самом деле обрабатывает Unicode должным образом. Другими словами, этот модуль бы обёртывал две библиотеки с совершенно различным поведением. Поэтому теперь этот модуль содержит обратную совместимую подмену Python 3 urllib.parse, которая в основном совместима с API.
-
class werkzeug.urls.BaseURL -
Базовый класс для
URLиBytesURL.-
ascii_host -
Действует точно так же, как
host, но вернёт результат, ограниченный ASCII. Если обнаруживается netloc, не являющийся ASCII, будет попытка декодирования с помощью idna. Это полезно для операций с сокетами, когда URL может содержать символы национальных языков.
-
auth -
Часть аутентификации в URL, если доступна,
Noneв противном случае.
-
decode_netloc() -
Декодирует часть netloc в строку.
-
decode_query(*args, **kwargs) -
Декодирует часть запроса URL. Это сокращение вызова
url_decode()с аргументом запроса. Аргументы и ключевые аргументы передаются вurl_decode()без изменений.
-
get_file_location(pathformat=None) -
Возвращает кортеж с расположением файла в формате
(server, location). Если netloc пуст в URL или указывает на localhost, он представлен какNone.Формат
pathformatпо умолчанию определяется автоматически, но должен быть задан при работе с URL конкретной системы. Поддерживаемые значения —'windows'при работе с путями Windows или DOS и'posix'при работе с путями posix.Если URL не указывает на локальный файл, сервер и расположение представлены как
None.Параметры: pathformat – Ожидаемый формат компонента пути. В настоящее время поддерживаются 'windows'и'posix'. По умолчаниюNone— автоматическое определение.
-
host -
Часть host в URL, если доступна, иначе
None. Host — это имя хоста или IP-адрес, указанные в URL. Порт не будет включён.
-
join(*args, **kwargs) -
Объединяет этот URL с другим. Это просто функция удобства для вызова
url_join()и повторного парсинга возвращаемого значения.
-
password -
Пароль, если он был частью URL,
Noneв противном случае. Он подвергается URL-декодированию и всегда будет строкой Unicode.
-
port -
Порт в URL как целое число, если он был указан,
Noneв противном случае. Не заполняет стандартные порты.
-
raw_password -
Пароль, если он был частью URL,
Noneв противном случае. В отличие отpassword, он не декодируется.
-
raw_username -
Имя пользователя, если оно было частью URL,
Noneв противном случае. В отличие отusername, он не декодируется.
-
replace(**kwargs) -
Возвращает URL с теми же значениями, за исключением параметров, которым присвоены новые значения заданными ключевыми аргументами.
-
to_iri_tuple() -
Возвращает кортеж
URL, содержащий IRI. Попытается декодировать как можно больше информации в URL, не теряя данных, подобно тому, как это делает веб-браузер для строки URL.Обычно предпочтительнее напрямую вызывать
uri_to_iri(), которое вернёт строку.
-
to_uri_tuple() -
Возвращает кортеж
BytesURL, содержащий URI. Кодирует всю информацию в URL в соответствии с правилами, которые использует веб-браузер, используя ASCII.Обычно предпочтительнее напрямую вызывать
iri_to_uri(), которое вернёт строку.
-
to_url() -
Возвращает строку URL или байты в зависимости от типа хранимой информации. Это просто удобная функция для вызова
url_unparse()для данного URL.
-
username -
Имя пользователя, если оно было частью URL,
Noneв противном случае. Он подвергается URL-декодированию и всегда будет строкой Unicode.
-
-
class werkzeug.urls.BytesURL -
Представляет обработанный URL в байтах.
-
decode(charset='utf-8', errors='replace') -
Декодирует URL в кортеж строк. Кодировка используется только для пути, запроса и фрагмента.
-
encode_netloc() -
Возвращает netloc без изменений как байты.
-
-
class werkzeug.urls.Href(base='./', charset='utf-8', sort=False, key=None) -
Реализует вызываемую функцию, которая строит URL с заданным основанием. Функция может вызываться с любым количеством позиционных и ключевых аргументов, которые затем используются для сборки URL. Работает с URL и путями posix.
Позиционные аргументы добавляются как отдельные сегменты к пути URL:
>>> href = Href('/foo') >>> href('bar', 23) '/foo/bar/23' >>> href('foo', bar=23) '/foo/foo?bar=23'Если любой из аргументов (позиционный или ключевой) имеет значение
None, он будет пропущен. Если не указаны ключевые аргументы, последний аргумент может бытьdictилиMultiDict(или любой другой подкласс словаря), в противном случае ключевые аргументы используются для параметров запроса, удаляя первую конечную нижнюю подчёркивание из имени параметра:>>> href(is_=42) '/foo?is=42' >>> href({'foo': 'bar'}) '/foo?foo=bar'Комбинирование обоих методов запрещено:
>>> href({'foo': 'bar'}, bar=42) Traceback (most recent call last): ... TypeError: keyword arguments and query-dicts can't be combinedОбращение к атрибутам объекта href создаёт новый объект href с именем атрибута в качестве префикса:
>>> bar_href = href.bar >>> bar_href("blub") '/foo/bar/blub'Если
sortустановлено вTrue, элементы сортируются поkeyили по алгоритму сортировки по умолчанию:>>> href = Href("/", sort=True) >>> href(a=1, b=2, c=3) '/?a=1&b=2&c=3'Добавлено в версии 0.5:
sortиkeyбыли добавлены.
-
class werkzeug.urls.URL -
Представляет обработанный URL. Ведёт себя как обычный кортеж, но также имеет дополнительные атрибуты, которые дают больше информации о URL.
-
encode(charset='utf-8', errors='replace') -
Кодирует URL в кортеж байтов. Кодировка используется только для пути, запроса и фрагмента.
-
encode_netloc() -
Кодирует часть netloc в безопасный URL ASCII в виде байтов.
-
-
werkzeug.urls.iri_to_uri(iri, charset='utf-8', errors='strict', safe_conversion=False) -
Преобразует IRI в URI. Все символы, не являющиеся ASCII, и небезопасные символы, будут закодированы. Если URL имеет домен, он кодируется с помощью Punycode.
>>> iri_to_uri('http://\u2603.net/p\xe5th?q=\xe8ry%DF') 'http://xn--n3h.net/p%C3%A5th?q=%C3%A8ry%DF'Параметры: - iri – IRI для преобразования.
- charset – Кодировка IRI.
-
errors – Обработчик ошибок для использования при
bytes.encode. - safe_conversion – Возвращает URL без изменений, если он содержит только символы ASCII и не содержит пробелов. Смотрите объяснение ниже.
Существует общая проблема с преобразованием IRI с некоторыми протоколами, которые нарушают спецификацию URI. Рассмотрим следующие два IRI:
magnet:?xt=uri:whatever itms-services://?action=download-manifest
После парсинга мы не знаем, требует ли схема
//, которое удаляется, если пусто, но имеет разное значение в конечном URL, если присутствует или отсутствует. В этом случае можно использоватьsafe_conversion, которое вернёт URL без изменений, если он содержит только символы ASCII и не содержит пробелов. Это может привести к URI с незакодированными символами, если он не был закодирован правильно, но сохраняет семантику URL. Werkzeug использует это для заголовкаLocationдля редиректов.Изменено в версии 0.15: Все зарезервированные символы остаются незакодированными. Ранее только некоторые зарезервированные символы оставались незакодированными.
Изменено в версии 0.9.6: Добавлен параметр
safe_conversion.Добавлено в версии 0.6.
-
werkzeug.urls.uri_to_iri(uri, charset='utf-8', errors='werkzeug.url_quote') -
Преобразовать URI в IRI. Все допустимые символы UTF-8 раскладываются, оставляя все служебные и недопустимые символы в котировках. Если в URL есть домен, он декодируется из Punycode.
>>> uri_to_iri("http://xn--n3h.net/p%C3%A5th?q=%C3%A8ry%DF") 'http://\u2603.net/p\xe5th?q=\xe8ry%DF'Параметры: - uri – URI для преобразования.
- charset – кодировка для кодирования нецитированных байтов.
-
errors – обработчик ошибок для использования во время
bytes.encode. По умолчанию недопустимые байты остаются цитированными.
Изменено в версии 0.15: Все служебные и недопустимые символы остаются цитированными. Ранее сохранялись только некоторые служебные символы, а недопустимые байты заменялись вместо того, чтобы оставаться цитированными.
Добавлена в версии 0.6.
-
werkzeug.urls.url_decode(s, charset='utf-8', decode_keys=False, include_empty=True, errors='replace', separator='&', cls=None) -
Разбирать строку запроса и возвращать её как
MultiDict. Есть разница в декодировании ключей на разных версиях Python. В Python 3 ключи всегда полностью декодируются, тогда как в Python 2 ключи остаются строками байтов, если они помещаются в ASCII. В 2.x ключи можно принудительно преобразовать в unicode, установивdecode_keysвTrue.Если charset установлен на
None, декодирования в unicode не произойдёт, и будут возвращены сырые байты.По умолчанию отсутствующее значение для ключа по умолчанию является пустым ключом. Если вы не хотите этого поведения, вы можете установить
include_emptyвFalse.По умолчанию ошибки кодирования игнорируются. Если вы хотите другое поведение, вы можете установить
errorsна'replace'или'strict'. В строгом режиме возникаетHTTPUnicodeError.Изменено в версии 0.5: В предыдущих версиях «;» и «&» можно было использовать для декодирования URL. Это изменилось в 0.5, где поддерживается только «&». Если вы хотите использовать «;» вместо этого, можно предоставить другой
separator.Параметр
clsбыл добавлен.Параметры: - s – строка со строкой запроса для декодирования.
-
charset – кодировка строки запроса. Если установлено
None, декодирования в unicode не произойдёт. -
decode_keys – используется в Python 2.x для управления тем, должны ли ключи быть принудительно преобразованными в объекты unicode. Если установлено
True, ключи всегда будут unicode. В противном случае они останутсяstr, если они помещаются в ASCII. -
include_empty – установить на
Falseесли вы не хотите, чтобы пустые значения появлялись в словаре. - errors – поведение ошибок декодирования.
-
separator – разделитель пар, по умолчанию
& -
cls – необязательный класс словаря для использования. Если это не указано или
None, используется стандартныйMultiDict.
-
werkzeug.urls.url_decode_stream(stream, charset='utf-8', decode_keys=False, include_empty=True, errors='replace', separator='&', cls=None, limit=None, return_iterator=False) -
Работает как
url_decode(), но декодирует поток. Поведение потока и предела аналогично функциям, таким какmake_line_iter(). Генератор пар непосредственно подаётся вcls, поэтому вы можете использовать данные во время их разбора.Добавлена в версии 0.8.
Параметры: - stream – поток с закодированной строкой запроса
-
charset – кодировка строки запроса. Если установлено
None, декодирования в unicode не произойдёт. -
decode_keys – используется в Python 2.x для управления тем, должны ли ключи быть принудительно преобразованными в объекты unicode. Если установлено
True, ключи всегда будут unicode. В противном случае они останутсяstrесли они помещаются в ASCII. -
include_empty – установить на
Falseесли вы не хотите, чтобы пустые значения появлялись в словаре. - errors – поведение ошибок декодирования.
-
separator – разделитель пар, по умолчанию
& -
cls – необязательный класс словаря для использования. Если это не указано или
None, используется стандартныйMultiDict. - limit – длина содержимого данных URL. Не обязательно, если предоставлен ограниченный поток.
-
return_iterator – если установлено
True, аргументclsигнорируется, и возвращается итератор по всем декодированным парам.
-
werkzeug.urls.url_encode(obj, charset='utf-8', encode_keys=False, sort=False, key=None, separator=b'&') -
Кодировать словарь/
MultiDictв URL. Если значениеNone, оно не будет отображаться в строке результата. По умолчанию кодируются только значения в строки целевой кодировки. Еслиencode_keysустановлено вTrue, поддерживаются ключи unicode.Если
sortустановлено вTrue, элементы сортируются поkeyили алгоритму сортировки по умолчанию.Добавлена в версии 0.5:
sort,key, иseparatorбыли добавлены.Параметры: - obj – объект для кодирования в строку запроса.
- charset – кодировка строки запроса.
-
encode_keys – установить в
Trueесли у вас есть ключи unicode. (Игнорируется в Python 3.x) -
sort – установить в
Trueесли вы хотите, чтобы параметры сортировались поkey. - separator – разделитель, используемый для пар.
-
key – необязательная функция, используемая для сортировки. Для получения более подробной информации ознакомьтесь с документацией
sorted().
-
werkzeug.urls.url_encode_stream(obj, stream=None, charset='utf-8', encode_keys=False, sort=False, key=None, separator=b'&') -
Подобно
url_encode(), но записывает результаты в объект потока. Если потокNone, возвращается генератор по всем закодированным парам.Добавлена в версии 0.8.
Параметры: - obj – объект для кодирования в строку запроса.
-
stream – поток для записи закодированного объекта или
None, если должен быть возвращён итератор по закодированным парам. В этом случае аргумент separator игнорируется. - charset – кодировка строки запроса.
-
encode_keys – установить в
Trueесли у вас есть ключи unicode. (Игнорируется в Python 3.x) -
sort – установить в
Trueесли вы хотите, чтобы параметры сортировались поkey. - separator – разделитель, используемый для пар.
-
key – необязательная функция, используемая для сортировки. Для получения более подробной информации ознакомьтесь с документацией
sorted().
-
werkzeug.urls.url_fix(s, charset='utf-8') -
Иногда вы получаете URL от пользователя, который не является реальным URL, так как содержит небезопасные символы, такие как пробелы и так далее. Эта функция может исправить некоторые проблемы аналогично тому, как браузеры обрабатывают данные, вводимые пользователем:
>>> url_fix(u'http://de.wikipedia.org/wiki/Elf (Begriffskl\xe4rung)') 'http://de.wikipedia.org/wiki/Elf%20(Begriffskl%C3%A4rung)'
Параметры: - s – строка с URL для исправления.
- charset – целевая кодировка для URL, если URL был задан как строка unicode.
-
werkzeug.urls.url_join(base, url, allow_fragments=True) -
Объединить базовый URL и потенциально относительный URL, чтобы сформировать абсолютное толкование последнего.
Параметры: - base – базовый URL для операции объединения.
- url – URL для объединения.
- allow_fragments – указывает, разрешены ли фрагменты.
-
werkzeug.urls.url_parse(url, scheme=None, allow_fragments=True) -
Разбирает URL из строки в кортеж
URL. Если в URL отсутствует схема, она может быть предоставлена в качестве второго аргумента. В противном случае она игнорируется. При необходимости фрагменты могут быть удалены из URL, установивallow_fragmentsнаFalse.Обратный этой функции является
url_unparse().Параметры: - url – URL для разбора.
- scheme – схема по умолчанию для использования, если URL без схемы.
-
allow_fragments – если установлено на
False, фрагмент будет удалён из URL.
-
werkzeug.urls.url_quote(string, charset='utf-8', errors='strict', safe='/:', unsafe='') -
Кодировка URL для одной строки с заданной кодировкой.
Параметры: - s – строка для кодирования.
- charset – используемая кодировка.
- safe – необязательная последовательность безопасных символов.
- unsafe – необязательная последовательность небезопасных символов.
Введено в версии 0.9.2: Параметр
unsafeбыл добавлен.
-
werkzeug.urls.url_quote_plus(string, charset='utf-8', errors='strict', safe='') -
Кодировка URL для одной строки с заданной кодировкой и преобразованием пробелов в «+».
Параметры: - s – Строка для кодирования.
- charset – Используемая кодировка.
- safe – Необязательная последовательность безопасных символов.
-
werkzeug.urls.url_unparse(components) -
Обратная операция к
url_parse(). Принимает произвольные, а такжеURLкортежи и возвращает URL в виде строки.Параметры: components – Разбор URL в виде кортежа, который должен быть преобразован в строку URL.
-
werkzeug.urls.url_unquote(string, charset='utf-8', errors='replace', unsafe='') -
Декодировка URL для одной строки с заданной кодировкой. Если кодировка установлена в
None, то декодирование в Unicode не выполняется, и возвращаются исходные байты.Параметры: - s – Строка для декодирования.
-
charset – Кодировка строки запроса. Если установлена в
None, декодирование в Unicode не будет выполнено. - errors – Обработка ошибок при декодировании кодировки.
-
werkzeug.urls.url_unquote_plus(s, charset='utf-8', errors='replace') -
Декодировка URL для одной строки с заданной
charsetи декодирование «+» в пробелы.По умолчанию ошибки кодирования игнорируются. Если требуется другое поведение, можно установить
errorsв'replace'или'strict'. В строгом режиме генерируетсяHTTPUnicodeError.Параметры: - s – Строка для декодирования.
-
charset – Кодировка строки запроса. Если установлена в
None, декодирование в Unicode не будет выполнено. -
errors – Обработка ошибок при декодировании
charset.
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/0.15.x/urls/