我正在寻找一种在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 WANT
或
from requests import Request, Session
s = Session()
req = Request('GET', url, params={'q': 'blah'})
print(req.url)
# I didn't get this to work, but from the docs
# it should build the url without making the call
或
url = baseurl + "?" + urllib.urlencode(params)
我喜欢请求库智能地决定删除?
如果不需要,但该代码实际上发出了一个完整的GET请求,而不仅仅是构建一个全文url(我计划转储到一个HTML标签)。我正在使用django,但在核心库中我没有看到任何帮助。
答案 0 :(得分:0)
Django附带QueryDict
s,基本上可以做你想做的一切。
def make_url(url, args=None):
query = QueryDict(mutable=True)
query.update(args or {})
return '{}{}{}'.format(url, '?' if query else '', query.urlencode())
它支持每个参数的多个值,就像您在网址中遇到的那样:example.com/foo?a=1&a=2&a=3
。