欢迎访问宙启技术站
智能推送

使用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的各个部分,包括路径、查询参数、子域名、域名、端口号和片段。