Справочник по URL
Функции для работы с URL.
Содержит реализации функций из urllib.parse, которые обрабатывают байты и строки.
-
class werkzeug.urls.BaseURL(*args, **kwargs)
-
Устаревшее с версии 2.3: Будет удалено в Werkzeug 3.0. Используйте библиотеку
urllib.parseвместо неё.Создать новый экземпляр _URLTuple(схема, доменное имя, путь, запрос, фрагмент)
- Параметры:
-
- args (t.Any) –
- kwargs (t.Any) –
- Тип возвращаемого значения:
-
property ascii_host: str | None -
Работает точно так же, как
host, но вернёт результат, ограниченный ASCII. Если найдёт доменное имя, не являющееся ASCII, то попытается выполнить декодирование IDNA. Это полезно для операций с сокетами, когда URL может содержать символы с национальными особенностями.
-
property auth: str | None -
Часть аутентификации в URL, если она есть,
Noneв противном случае.
-
decode_netloc() -
Декодирует часть доменного имени в строку.
- Тип возвращаемого значения:
-
decode_query(*args, **kwargs) -
Декодирует часть запроса URL. Это сокращение вызова
url_decode()для аргумента запроса. Аргументы и ключевые аргументы передаются вurl_decode()без изменений.
-
encode_netloc() -
Кодирует часть доменного имени в безопасный для URL ASCII формат в виде байтов.
- Тип возвращаемого значения:
-
get_file_location(pathformat=None) -
Возвращает кортеж с расположением файла в формате
(server, location). Если доменное имя в URL пустое или указывает на localhost, оно представлено какNone.Формат
pathformatпо умолчанию — автоматическое определение, но нужно устанавливать при работе с URL конкретной системы. Поддерживаемые значения —'windows'для Windows или DOS путей и'posix'для POSIX путей.Если URL не указывает на локальный файл, сервер и расположение представлены как
None.
-
property host: str | None -
Часть доменного имени URL, если она есть, иначе
None. Доменное имя — это либо имя хоста, либо IP-адрес, указанный в URL. Порт не включается.
-
join(*args, **kwargs) -
Объединяет этот URL с другим. Это просто функция для удобства вызова
url_join()и последующего повторного разбора возвращаемого значения.
-
property password: str | None -
Пароль, если он был частью URL,
Noneв противном случае. Подвергается декодированию URL и всегда является строкой.
-
property port: int | None -
Порт в URL как целое число, если он был указан,
Noneв противном случае. Не заполняет порты по умолчанию.
-
property raw_password: str | None -
Пароль, если он был частью URL,
Noneв противном случае. В отличие отpassword, этот не декодируется.
-
property raw_username: str | None -
Имя пользователя, если оно было частью 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.- Тип возвращаемого значения:
-
property username: str | None -
Имя пользователя, если оно было частью URL,
Noneв противном случае. Подвергается декодированию URL и всегда является строкой.
-
class werkzeug.urls.BytesURL(*args, **kwargs) -
Представляет собой разобранный URL в байтах.
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 3.0. Используйте библиотеку
urllib.parseвместо неё.Создаёт новый экземпляр _URLTuple(схема, доменное имя, путь, запрос, фрагмент)
- Параметры:
-
- args (t.Any) –
- kwargs (t.Any) –
- Тип возвращаемого значения:
-
decode(charset='utf-8', errors='replace') -
Декодирует URL в кортеж, состоящий из строк. Кодировка символов используется только для пути, запроса и фрагмента.
-
encode_netloc() -
Возвращает доменное имя без изменений в виде байтов.
- Тип возвращаемого значения:
-
class werkzeug.urls.URL(*args, **kwargs) -
Представляет собой разобранный URL. Он ведет себя как обычный кортеж, но также имеет дополнительные атрибуты, которые предоставляют дополнительную информацию о URL.
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 3.0. Используйте библиотеку
urllib.parseвместо неё.Создаёт новый экземпляр _URLTuple(схема, доменное имя, путь, запрос, фрагмент)
- Параметры:
-
- args (t.Any) –
- kwargs (t.Any) –
- Тип возвращаемого значения:
-
werkzeug.urls.iri_to_uri(iri, charset=None, errors=None, safe_conversion=None) -
Преобразует 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'- Параметры:
- Тип возвращаемого значения:
Изменено в версии 2.3: Передача кортежа или байтов, а также параметров
charsetиerrors, устарела и будет удалена в Werkzeug 3.0.Изменено в версии 2.3: Какие символы остаются не закодированными, зависит от каждой части URL.
Изменено в версии 2.3: Параметр
safe_conversionустарел и будет удалён в Werkzeug 2.4.Изменения
Изменено в версии 0.15: Все зарезервированные символы остаются не закодированными. Раньше только некоторые зарезервированные символы оставались не закодированными.
Изменено в версии 0.9.6: Добавлен параметр
safe_conversion.Добавлено в версии 0.6.
-
werkzeug.urls.uri_to_iri(uri, charset=None, errors=None) -
Преобразует 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'- Параметры:
- Тип возвращаемого значения:
Изменено в версии 2.3: Передача кортежа или байтов, а также параметров
charsetиerrors, устарела и будет удалена в Werkzeug 3.0.Изменено в версии 2.3: Какие символы остаются с котировкой, зависит от каждой части URL.
Изменения
Изменено в версии 0.15: Все зарезервированные и недопустимые символы остаются с котировкой. Раньше только некоторые зарезервированные символы сохранялись, а недопустимые байты заменялись вместо того, чтобы оставаться с котировкой.
Добавлено в версии 0.6.
-
werkzeug.urls.url_decode(s, charset='utf-8', include_empty=True, errors='replace', separator='&', cls=None) -
Разбор строки запроса и возврат результата в виде
MultiDict.- Параметры:
-
- s (t.AnyStr) – Строка запроса для разбора.
- charset (str) – Кодировка для декодирования байтов в строку. Если не указано, байты возвращаются в неизменном виде.
- include_empty (bool) – Включать ключи с пустыми значениями в словарь.
- errors (str) – Обработка ошибок при декодировании байтов.
- separator (str) – Разделитель между парами.
-
cls (type[ds.MultiDict] | None) – Контейнер для хранения результата вместо
MultiDict.
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.parse_qsвместо этого.Журнал изменений
Изменено в версии 2.1: Параметр
decode_keysбыл удален.Изменено в версии 0.5: В предыдущих версиях для URL-декодирования можно было использовать «;» и «&». Сейчас поддерживается только «&». Если вы хотите использовать «;», можно указать другой
separator.Изменено в версии 0.5: Добавлен параметр
cls.
-
werkzeug.urls.url_decode_stream(stream, charset='utf-8', include_empty=True, errors='replace', separator=b'&', cls=None, limit=None) -
Работает как
url_decode(), но декодирует поток. Поведение потока и предела аналогично функциям, таким какmake_line_iter(). Генератор пар напрямую передается вcls, так что вы можете использовать данные по мере их разбора.- Параметры:
-
- stream (t.IO[bytes]) – поток с закодированной строкой запроса
-
charset (str) – кодировка строки запроса. Если установлено
Noneдекодирование не будет выполнено. -
include_empty (bool) – Установлено в
Falseесли вы не хотите, чтобы пустые значения отображались в словаре. - errors (str) – поведение при ошибках декодирования.
-
separator (bytes) – разделитель пар, по умолчанию
& -
cls (type[ds.MultiDict] | None) – необязательный класс словаря для использования. Если это не указано или
Noneиспользуется по умолчаниюMultiDict. - limit (int | None) – длина содержимого данных URL. Не требуется, если предоставлен ограниченный поток.
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 2.4. Используйте
urllib.parse.parse_qsвместо этого.Журнал изменений
Изменено в версии 2.1: Параметры
decode_keysиreturn_iteratorбыли удалены.Добавлена в версии 0.8.
-
werkzeug.urls.url_encode(obj, charset='utf-8', sort=False, key=None, separator='&') -
URL-кодирование словаря/
MultiDict. Если значениеNoneоно не будет отображаться в строке результата. По умолчанию только значения кодируются в строки целевой кодировки.- Параметры:
-
- obj (Mapping[str, str] | Iterable[tuple[str, str]]) – объект, который нужно закодировать в строку запроса.
- charset (str) – кодировка строки запроса.
-
sort (bool) – установлено в
Trueесли вы хотите, чтобы параметры были отсортированы поkey. - separator (str) – разделитель, который будет использоваться для пар.
-
key (Callable[[tuple[str, str]], Any] | None) – необязательная функция для сортировки. Более подробную информацию см. в документации по
sorted().
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 2.4. Используйте
urllib.parse.urlencodeвместо этого.Журнал изменений
Изменено в версии 2.1: Параметр
encode_keysбыл удален.Изменено в версии 0.5: Добавлены параметры
sort,key, иseparator.
-
werkzeug.urls.url_encode_stream(obj, stream=None, charset='utf-8', sort=False, key=None, separator='&') -
Подобно
url_encode(), но записывает результаты в объект потока. Если поток —None— возвращается генератор всех закодированных пар.- Параметры:
-
- obj (Mapping[str, str] | Iterable[tuple[str, str]]) – объект для кодирования в строку запроса.
-
stream (IO[str] | None) – поток для записи закодированного объекта или
None, если должен быть возвращён итератор закодированных пар. В этом случае параметр separator игнорируется. - charset (str) – кодировка строки запроса.
-
sort (bool) – устанавливается в
True, если вы хотите отсортировать параметры поkey. - separator (str) – разделитель для пар.
-
key (Callable[[tuple[str, str]], Any] | None) – необязательная функция для сортировки. Более подробная информация находится в документации
sorted().
- Тип возвращаемого значения:
-
None
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 2.4. Используйте
urllib.parse.urlencodeвместо этого.Журнал изменений
Изменено в версии 2.1: Параметр
encode_keysбыл удалён.Добавлен в версии 0.8.
-
werkzeug.urls.url_fix(s, charset='utf-8') -
Иногда вы получаете URL от пользователя, который не является реальным URL, поскольку он содержит небезопасные символы, такие как пробелы и т. д. Эта функция может исправить некоторые проблемы аналогично тому, как браузеры обрабатывают данные, введённые пользователем:
>>> url_fix('http://de.wikipedia.org/wiki/Elf (Begriffskl\xe4rung)') 'http://de.wikipedia.org/wiki/Elf%20(Begriffskl%C3%A4rung)'- Параметры:
- Тип возвращаемого значения:
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 3.0.
-
werkzeug.urls.url_join(base, url, allow_fragments=True) -
Объединить базовый URL и, возможно, относительный URL, чтобы сформировать абсолютную интерпретацию последнего.
- Параметры:
- Тип возвращаемого значения:
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 2.4. Используйте
urllib.parse.urljoinвместо этого.
-
werkzeug.urls.url_parse(url, scheme=None, allow_fragments=True) -
Разбирает URL из строки в кортеж
URL. Если URL не содержит схемы, она может быть предоставлена в качестве второго аргумента. В противном случае она игнорируется. Необязательно, фрагменты могут быть удалены из URL, установивallow_fragmentsвFalse.Обратный этой функции —
url_unparse().- Параметры:
- Тип возвращаемого значения:
Устарело начиная с версии 2.3: Будет удалено в Werkzeug 3.0. Используйте
urllib.parse.urlsplitвместо этого.
-
werkzeug.urls.url_quote(string, charset='utf-8', errors='strict', safe='/:', unsafe='') -
Кодировка URL для одной строки с заданной кодировкой.
- Параметры:
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.quoteвместо этого.Журнал изменений
Новая в версии 0.9.2: Параметр
unsafeбыл добавлен.
-
werkzeug.urls.url_quote_plus(string, charset='utf-8', errors='strict', safe='') -
Кодировка URL для одной строки с заданной кодировкой и преобразованием пробелов в “+”.
- Параметры:
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.quote_plusвместо этого.
-
werkzeug.urls.url_unparse(components) -
Обратная операция к
url_parse(). Принимает произвольные, а также кортежиURLи возвращает URL в виде строки.- Параметры:
-
components (tuple[str, str, str, str, str]) – Разбор URL как кортеж, который должен быть преобразован в строку URL.
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.urlunsplitвместо этого.
-
werkzeug.urls.url_unquote(s, charset='utf-8', errors='replace', unsafe='') -
Декодирование URL для одной строки с заданной кодировкой. Если кодировка установлена в
None, декодирование не выполняется, и возвращаются исходные байты.- Параметры:
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.unquoteвместо этого.
-
werkzeug.urls.url_unquote_plus(s, charset='utf-8', errors='replace') -
Декодирование URL для одной строки с заданной
charsetи декодирование “+” в пробелы.По умолчанию ошибки кодирования игнорируются. Если нужно другое поведение, можно установить
errorsна'replace'или'strict'.- Параметры:
- Тип возвращаемого значения:
Устаревшая с версии 2.3: Будет удалена в Werkzeug 3.0. Используйте
urllib.parse.unquote_plusвместо этого.
© 2007–2022 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.3.x/urls/