Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为链接构建完整URL的Python方式是什么?_Python_Django - Fatal编程技术网

为链接构建完整URL的Python方式是什么?

为链接构建完整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

我正在寻找一种在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

我喜欢请求库智能地决定在不需要时删除
,但该代码实际上发出完整的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())