Python Glossary English

все Python 3urllib.parseфункция

urllib.parse.urljoin()

разбор URL

Строит абсолютный URL из базового адреса и относительной ссылки — так, как это делает браузер.

Синтаксис

urllib.parse.urljoin(base, url, allow_fragments=True)

Ссылка с ведущей «/» заменяет весь путь базы, а не дописывается к нему: urljoin('http://h/api/v1', '/users') даёт http://h/users. Без завершающей «/» последний сегмент базы отбрасывается: 'http://h/api' + 'users' → http://h/users. Абсолютная ссылка ('//evil.com/x' или 'https://…') целиком заменяет базу, поэтому склеивать с ней пользовательский ввод небезопасно.

Примеры

from urllib.parse import urljoin
print(urljoin('http://h/api/v1/', '/users'))  # → http://h/users
print(urljoin('http://h/api/v1/', 'users'))  # → http://h/api/v1/users
print(urljoin('http://h/api/v1', 'users'))  # → http://h/api/users
from urllib.parse import urljoin
print(urljoin('http://h/a/b', '//evil.com/x'))  # → http://evil.com/x
print(urljoin('http://h/a/', '../x'))  # → http://h/x

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности