使用Python的make_url()函数生成可定制的URL地址
发布时间:2023-12-25 18:13:01
下面是一个使用Python编写的make_url()函数,用于生成可定制的URL地址:
def make_url(base_url, path='', params={}, scheme='http', subdomain='', domain='', port='', fragment=''):
# 检查是否提供了域名
if not domain and not subdomain:
raise ValueError('Both subdomain and domain cannot be empty')
# 生成基本URL
url = f'{scheme}://'
# 拼接子域名和域名
if subdomain:
url += f'{subdomain}.'
url += domain
# 拼接端口号
if port:
url += f':{port}'
# 拼接路径
url += f'/{path}' if path else ''
# 拼接查询参数
if params:
url += '?'
url += '&'.join([f'{key}={value}' for key, value in params.items()])
# 拼接片段
if fragment:
url += f'#{fragment}'
return url
使用示例:
# 示例1:生成简单URL
url1 = make_url('example.com', path='products', params={'category': 'electronics'})
print(url1) # 输出: http://example.com/products?category=electronics
# 示例2:生成带子域名和端口号的URL
url2 = make_url('example.com', path='about', subdomain='info', port='8080')
print(url2) # 输出: http://info.example.com:8080/about
# 示例3:生成带片段的URL
url3 = make_url('example.com', path='blog', fragment='section1')
print(url3) # 输出: http://example.com/blog#section1
# 示例4:生成HTTPS URL
url4 = make_url('example.com', scheme='https', path='privacy-policy')
print(url4) # 输出: https://example.com/privacy-policy
# 示例5:生成URL时,域名和子域名都为空会引发错误
try:
url5 = make_url('example.com', path='contact', subdomain='')
print(url5)
except ValueError as e:
print(e) # 输出: Both subdomain and domain cannot be empty
通过调用make_url()函数,我们可以灵活地生成具有不同定制选项的URL地址。您可以根据实际需求,自由设置URL的各个部分,包括路径、查询参数、子域名、域名、端口号和片段。
