需求:
在一个页面中,有很多图片地址
不过,图片url是一个绝对路径地址,不带域名
我希望得到带域名的完整图片地址,这样存入数据库之后能够正常打开图片
# 当前页面地址 'https://www.demo.com/list/1' # 图片地址 '/uploads/20211020/edb0ce29ecbe7865da2a7b904ffd85da.jpg' # 完整图片地址 'https://www.demo.com/uploads/20211020/edb0ce29ecbe7865da2a7b904ffd85da.jpg'
第一感觉是直接拼接字符串实现
'https://www.demo.com' + '/uploads/20211020/edb0ce29ecbe7865da2a7b904ffd85da.jpg'
如果当前页面变了呢?而且这样写会出现一个硬编码的字符串,看着很不舒服
其实,我们可以通过内置函数urljoin
优雅的实现url的拼接
Python3 示例
# -*- coding: utf-8 -*- from urllib.parse import urljoin current_url = 'https://www.demo.com/list/1' url = '/uploads/20211020/edb0ce29ecbe7865da2a7b904ffd85da.jpg' full_url = urljoin(current_url, url) print(full_url) # https://www.demo.com/uploads/20211020/edb0ce29ecbe7865da2a7b904ffd85da.jpg