Python: confusions with urljoin
python, python-3.x
Solution
The best way (for me) to think of this is the first argument, `base` is like the page you are on in your browser. The second argument `url` is the href of an anchor on that page. The result is the final url to which you will be directed should you click.
>>> urljoin('some', 'thing')
'thing'
This one makes sense given my description. Though one would hope base includes a scheme and domain.
>>> urljoin('http://some', 'thing')
'http://some/thing'
If you are on a vhost some, and there is an anchor like `<a href='thing'>Foo</a>` then the link will take you to `http://some/thing`
>>> urljoin('http://some/more', 'thing')
'http://some/thing'
We are on `some/more` here, so a relative link of `thing` will take us to `/some/thing`
>>> urljoin('http://some/more/', 'thing') # just a tad / after 'more'
'http://some/more/thing'
Here, we aren't on `some/more`, we are on `some/more/` which is different. Now, our relative link will take us to `some/more/thing`
>>> urljoin('http://some/more/', '/thing')
'http://some/thing'
And lastly. If on `some/more/` and the href is to `/thing`, you will be linked to `some/thing`.
Problem
I am trying to form URLs from different pieces, and having trouble understanding the behavior of this method. For example: Python 3.x ``` from urllib.parse import urljoin >>> urljoin('some', 'thing') 'thing' >>> urljoin('http://some', 'thing') 'http://some/thing' >>> urljoin('http://some/more', 'thing') 'http://some/thing' >>> urljoin('http://some/more/', 'thing') # just a tad / after 'more' 'http://some/more/thing' urljoin('http://some/more/', '/thing') 'http://some/thing' ``` Can you explain the exact behavior of this method?