为链接构建完整URL的Python方式是什么?
我正在寻找一种在python3中构建URL的方法,而不必进行字符串连接。我知道我能做到为链接构建完整URL的Python方式是什么?,python,django,Python,Django,我正在寻找一种在python3中构建URL的方法,而不必进行字符串连接。我知道我能做到 import requests url_endpoint = 'https://www.duckduckgo.com' mydict = {'q': 'whee! Stanford!!!', 'something': 'else'} resp = requests.get(url_endpoint, params=mydict) print(resp.url) # THIS IS EXACTLY WHAT I
import requests
url_endpoint = 'https://www.duckduckgo.com'
mydict = {'q': 'whee! Stanford!!!', 'something': 'else'}
resp = requests.get(url_endpoint, params=mydict)
print(resp.url) # THIS IS EXACTLY WHAT I WANT
或
或
我喜欢请求库智能地决定在不需要时删除?
,但该代码实际上发出完整的GET请求,而不仅仅是构建一个全文url(我计划将其转储到html标记)。我正在使用django,但是我在核心库中没有看到任何帮助。django附带了它,它基本上可以做你想要的一切
def make_url(url, args=None):
query = QueryDict(mutable=True)
query.update(args or {})
return '{}{}{}'.format(url, '?' if query else '', query.urlencode())
它支持每个参数的多个值,就像您在url中遇到的那样:
example.com/foo?a=1&a=2&a=3
如果您构建了一个或请求。PreparedRequest
(不会发送它),您可以从该对象中获取url。您知道吗?req.url
将在重定向后包含url,因此,它需要填充一个请求。如果要脱机完成,当然有。urlunparse有一个笨拙的方法签名,需要6个参数作为元组。为什么要使用QueryDict:url='{}{}{}{}'。format(baseurl),?'If query else',urllib.parse.urlencode(params)
?
url = baseurl + "?" + urllib.urlencode(params)
def make_url(url, args=None):
query = QueryDict(mutable=True)
query.update(args or {})
return '{}{}{}'.format(url, '?' if query else '', query.urlencode())