Ответ 1
Лучший способ (для меня) подумать об этом - это первый аргумент, base
- это как страница, на которой вы находитесь в своем браузере. Второй аргумент url
- это href привязки на этой странице. Результатом является окончательный URL-адрес, к которому вы будете направлены, если вы нажмете.
>>> urljoin('some', 'thing')
'thing'
Это имеет смысл дать мое описание. Хотя можно надеяться, что база включает в себя схему и домен.
>>> urljoin('http://some', 'thing')
'http://some/thing'
Если вы находитесь на vhost some, и есть якорь, например <a href='thing'>Foo</a>
, тогда ссылка приведет вас к http://some/thing
>>> urljoin('http://some/more', 'thing')
'http://some/thing'
Здесь мы находимся здесь some/more
, поэтому относительная ссылка thing
приведет нас к /some/thing
>>> urljoin('http://some/more/', 'thing') # just a tad / after 'more'
'http://some/more/thing'
Здесь мы не на some/more
, мы находимся на some/more/
, который отличается. Теперь наша относительная ссылка приведет нас к some/more/thing
>>> urljoin('http://some/more/', '/thing')
'http://some/thing'
И наконец. Если на some/more/
и href соответствует /thing
, вы будете связаны с some/thing
.