的data
元組要傳遞到urlunparse
具有以下組件:
scheme, netloc, url, query, fragment = data
當沒有netloc
,而scheme
不uses_netloc
,該網址是
url = scheme + ':' + url
也就是說urlunparse(它調用urlunsplit)的方式is defined:
def urlunsplit(data):
...
scheme, netloc, url, query, fragment = data
if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'):
if url and url[:1] != '/': url = '/' + url
url = '//' + (netloc or '') + url
if scheme:
url = scheme + ':' + url
注意'ssh'
不uses_netloc
:
uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet',
'imap', 'wais', 'file', 'mms', 'https', 'shttp',
'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '',
'svn', 'svn+ssh', 'sftp','nfs','git', 'git+ssh']
你做,如果你提供一個netloc
得到與ssh://
開頭的網址:
In [140]: urlparse.urlunparse(('ssh','netloc','test_path', None, None, None))
Out[140]: 'ssh://netloc/test_path'
的裏urlparse源代碼缺少'ssh',至少2.6。 – hd1 2013-03-20 02:44:33