python - 在 Python 中构建 URL 时如何连接路径的组件

标签 python url

例如,我想将前缀路径加入到/js/foo.js 等资源路径中。

我希望生成的路径相对于服务器的根目录。在上面的示例中,如果前缀是“媒体”,我希望结果是/media/js/foo.js。

os.path.join 做得很好,但它如何连接路径取决于操作系统。在这种情况下,我知道我的目标是 Web,而不是本地文件系统。

当您使用知道将在 URL 中使用的路径时,是否有最佳选择? os.path.join 会足够好用吗?我应该自己滚动吗?

最佳答案

您可以使用 urllib.parse.urljoin :

>>> from urllib.parse import urljoin
>>> urljoin('/media/path/', 'js/foo.js')
'/media/path/js/foo.js'

但要小心:

>>> urljoin('/media/path', 'js/foo.js')
'/media/js/foo.js'
>>> urljoin('/media/path', '/js/foo.js')
'/js/foo.js'

您从 /js/foo.jsjs/foo.js 得到不同结果的原因是前者以斜线开头,表示它已经开始在网站根目录。

在 Python 2 上,您必须这样做

from urlparse import urljoin

关于python - 在 Python 中构建 URL 时如何连接路径的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1793261/

相关文章:

Python - 如果数字大于 0,则运行平均值

python - Google App Engine Python 添加

python : how to know max size of a queue

python - numpy set_printoptions 的本地范围

python - 如何使用 Scipy 进行内存高效的距离变换操作?

php - 通过单击链接在 cookie 中设置语言设置

ruby-on-rails - 链接回到表格前访问的页面

iphone - 如何在 Info.plist 中设置多个 url schemes

iphone - Cocoa 的 URL 加载系统中的路径总是 URL,或者有时是 URI?

python - 将 POST 请求重定向到已使用的 URL (Django)