La meilleure façon (pour moi) de penser à cela est que le premier argument, base
, est comme la page sur laquelle vous vous trouvez dans votre navigateur. Le deuxième argument url
est le href d'une ancre sur cette page. Le résultat est l'URL finale vers laquelle vous serez dirigé si vous cliquez.
>>> urljoin('quelque', 'chose')
'chose'
Cela a du sens étant donné ma description. Bien que l'on espère que la base inclut un schéma et un domaine.
>>> urljoin('http://quelque', 'chose')
'http://quelque/chose'
Si vous êtes sur un vhost "quelque", et qu'il y a une ancre comme [Foo](chose)
, alors le lien vous mènera à http://quelque/chose
>>> urljoin('http://quelque/encore', 'chose')
'http://quelque/chose'
Ici, nous sommes sur quelque/encore
, donc un lien relatif de chose
nous mènera à /quelque/chose
>>> urljoin('http://quelque/encore/', 'chose') # juste un peu / après 'encore'
'http://quelque/encore/chose'
Ici, nous ne sommes pas sur quelque/encore
, mais sur quelque/encore/
ce qui est différent. Maintenant, notre lien relatif nous mènera à quelque/encore/chose
>>> urljoin('http://quelque/encore/', '/chose')
'http://quelque/chose'
Et enfin. Si vous êtes sur quelque/encore/
et que le href est vers /chose
, vous serez lié à quelque/chose
.