本文整理汇总了Python中urlobject.URLObject.with_port方法的典型用法代码示例。如果您正苦于以下问题:Python URLObject.with_port方法的具体用法?Python URLObject.with_port怎么用?Python URLObject.with_port使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类urlobject.URLObject
的用法示例。
在下文中一共展示了URLObject.with_port方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_with_port_replaces_port_number
# 需要导入模块: from urlobject import URLObject [as 别名]
# 或者: from urlobject.URLObject import with_port [as 别名]
def test_with_port_replaces_port_number(self):
url = URLObject('https://github.com:59/')
assert url.with_port(67) == 'https://github.com:67/'
示例2: URLObjectModificationTest
# 需要导入模块: from urlobject import URLObject [as 别名]
# 或者: from urlobject.URLObject import with_port [as 别名]
class URLObjectModificationTest(unittest.TestCase):
def setUp(self):
self.url = URLObject('https://github.com/zacharyvoase/urlobject?spam=eggs#foo')
def test_with_scheme_replaces_scheme(self):
assert (self.url.with_scheme('http') ==
'http://github.com/zacharyvoase/urlobject?spam=eggs#foo')
def test_with_netloc_replaces_netloc(self):
assert (self.url.with_netloc('example.com') ==
'https://example.com/zacharyvoase/urlobject?spam=eggs#foo')
def test_with_hostname_replaces_hostname(self):
url = URLObject('https://user:[email protected]/')
assert (url.with_hostname('example.com') ==
'https://user:[email protected]/')
def test_with_username_adds_username(self):
url = URLObject('https://github.com/')
assert url.with_username('zack') == 'https://[email protected]/'
def test_with_username_replaces_username(self):
url = URLObject('https://[email protected]/')
assert url.with_username('alice') == 'https://[email protected]/'
def test_without_username_removes_username(self):
url = URLObject('https://[email protected]/')
assert url.without_username() == 'https://github.com/'
def test_with_password_adds_password(self):
url = URLObject('https://[email protected]/')
assert url.with_password('1234') == 'https://zack:[email protected]/'
def test_with_password_raises_ValueError_when_there_is_no_username(self):
url = URLObject('https://github.com/')
assert_raises(ValueError, lambda: url.with_password('1234'))
def test_with_password_replaces_password(self):
url = URLObject('https://zack:[email protected]/')
assert url.with_password('5678') == 'https://zack:[email protected]/'
def test_without_password_removes_password(self):
url = URLObject('https://zack:[email protected]/')
assert url.without_password() == 'https://[email protected]/'
def test_with_auth_with_one_arg_adds_username(self):
url = URLObject('https://github.com/')
assert url.with_auth('zack') == 'https://[email protected]/'
def test_with_auth_with_one_arg_replaces_whole_auth_string_with_username(self):
url = URLObject('https://alice:[email protected]/')
assert url.with_auth('zack') == 'https://[email protected]/'
def test_with_auth_with_two_args_adds_username_and_password(self):
url = URLObject('https://github.com/')
assert url.with_auth('zack', '1234') == 'https://zack:[email protected]/'
def test_with_auth_with_two_args_replaces_whole_auth_string_with_username_and_password(self):
# Replaces username-only auth string
url = URLObject('https://[email protected]/')
assert url.with_auth('zack', '1234') == 'https://zack:[email protected]/'
# Replaces username and password.
url = URLObject('https://alice:[email protected]/')
assert url.with_auth('zack', '1234') == 'https://zack:[email protected]/'
def test_without_auth_removes_entire_auth_string(self):
# No username or password => no-op.
url = URLObject('https://github.com/')
assert url.without_auth() == 'https://github.com/'
# Username-only.
url = URLObject('https://[email protected]/')
assert url.without_auth() == 'https://github.com/'
# Username and password.
url = URLObject('https://alice:[email protected]/')
assert url.without_auth() == 'https://github.com/'
def test_with_port_adds_port_number(self):
assert (self.url.with_port(24) ==
'https://github.com:24/zacharyvoase/urlobject?spam=eggs#foo')
def test_with_port_replaces_port_number(self):
url = URLObject('https://github.com:59/')
assert url.with_port(67) == 'https://github.com:67/'
def test_without_port_removes_port_number(self):
url = URLObject('https://github.com:59/')
assert url.without_port() == 'https://github.com/'
def test_with_path_replaces_path(self):
assert (self.url.with_path('/dvxhouse/intessa') ==
'https://github.com/dvxhouse/intessa?spam=eggs#foo')
def test_root_goes_to_root_path(self):
assert self.url.root == 'https://github.com/?spam=eggs#foo'
def test_parent_jumps_up_one_level(self):
url = URLObject('https://github.com/zacharyvoase/urlobject')
assert url.parent == 'https://github.com/zacharyvoase/'
#.........这里部分代码省略.........
示例3: render
# 需要导入模块: from urlobject import URLObject [as 别名]
# 或者: from urlobject.URLObject import with_port [as 别名]
def render(self, context):
kwargs = MultiValueDict()
for key in self.kwargs:
key = smart_str(key, 'ascii')
values = [value.resolve(context) for value in self.kwargs.getlist(key)]
kwargs.setlist(key, values)
if 'base' in kwargs:
url = URLObject.parse(kwargs['base'])
else:
url = URLObject(scheme='http')
if 'secure' in kwargs:
if convert_to_boolean(kwargs['secure']):
url = url.with_scheme('https')
else:
url = url.with_scheme('http')
if 'query' in kwargs:
query = kwargs['query']
if isinstance(query, basestring):
query = render_template_from_string_without_autoescape(query, context)
url = url.with_query(query)
if 'add_query' in kwargs:
for query_to_add in kwargs.getlist('add_query'):
if isinstance(query_to_add, basestring):
query_to_add = render_template_from_string_without_autoescape(query_to_add, context)
query_to_add = dict(decode_query(query_to_add))
for key, value in query_to_add.items():
url = url.add_query_param(key, value)
if 'scheme' in kwargs:
url = url.with_scheme(kwargs['scheme'])
if 'host' in kwargs:
url = url.with_host(kwargs['host'])
if 'path' in kwargs:
url = url.with_path(kwargs['path'])
if 'add_path' in kwargs:
for path_to_add in kwargs.getlist('add_path'):
url = url.add_path_component(path_to_add)
if 'fragment' in kwargs:
url = url.with_fragment(kwargs['fragment'])
if 'port' in kwargs:
url = url.with_port(kwargs['port'])
# sensible default
if not url.host:
url = url.with_scheme('')
# Convert the URLObject to its unicode representation
url = unicode(url)
# Handle escaping. By default, use the value of
# context.autoescape. This can be overridden by
# passing an "autoescape" keyword to the tag.
if 'autoescape' in kwargs:
autoescape = convert_to_boolean(kwargs['autoescape'])
else:
autoescape = context.autoescape
if autoescape:
url = escape(url)
if self.asvar:
context[self.asvar] = url
return ''
return url
示例4: SpurlURLBuilder
# 需要导入模块: from urlobject import URLObject [as 别名]
# 或者: from urlobject.URLObject import with_port [as 别名]
#.........这里部分代码省略.........
def handle_scheme_from(self, value):
url = URLObject(value)
self.url = self.url.with_scheme(url.scheme)
def handle_host(self, value):
host = self.prepare_value(value)
self.url = self.url.with_hostname(host)
def handle_host_from(self, value):
url = URLObject(value)
self.url = self.url.with_hostname(url.hostname)
def handle_path(self, value):
path = self.prepare_value(value)
self.url = self.url.with_path(path)
def handle_path_from(self, value):
url = URLObject(value)
self.url = self.url.with_path(url.path)
def handle_add_path(self, value):
path_to_add = self.prepare_value(value)
self.url = self.url.add_path(path_to_add)
def handle_add_path_from(self, value):
url = URLObject(value)
path_to_add = url.path
if path_to_add.startswith('/'):
path_to_add = path_to_add[1:]
self.url = self.url.add_path(path_to_add)
def handle_fragment(self, value):
fragment = self.prepare_value(value)
self.url = self.url.with_fragment(fragment)
def handle_fragment_from(self, value):
url = URLObject(value)
self.url = self.url.with_fragment(url.fragment)
def handle_port(self, value):
self.url = self.url.with_port(int(value))
def handle_port_from(self, value):
url = URLObject(value)
self.url = self.url.with_port(url.port)
def handle_autoescape(self, value):
self.autoescape = convert_to_boolean(value)
def set_sensible_defaults(self):
if self.url.hostname and not self.url.scheme:
self.url = self.url.with_scheme('http')
def prepare_value(self, value):
"""Prepare a value by unescaping embedded template tags
and rendering through Django's template system"""
if isinstance(value, six.string_types):
value = self.render_template(self.unescape_tags(value))
return value
def unescape_tags(self, template_string):
"""Spurl allows the use of templatetags inside templatetags, if
the inner templatetags are escaped - {\% and %\}"""
return template_string.replace('{\%', '{%').replace('%\}', '%}')
def compile_string(self, template_string, origin):
"""Re-implementation of django.template.base.compile_string
that takes into account the tags and filter of the parser
that rendered the parent template"""
if settings.TEMPLATE_DEBUG:
from django.template.debug import DebugLexer, DebugParser
lexer_class, parser_class = DebugLexer, DebugParser
else:
lexer_class, parser_class = Lexer, Parser
lexer = lexer_class(template_string, origin)
parser = parser_class(lexer.tokenize())
# Attach the tags and filters from the parent parser
parser.tags = self.tags
parser.filters = self.filters
return parser.parse()
def render_template(self, template_string):
"""Used to render an "inner" template, ie one which
is passed as an argument to spurl"""
original_autoescape = self.context.autoescape
self.context.autoescape = False
template = Template('')
if settings.TEMPLATE_DEBUG:
origin = StringOrigin(template_string)
else:
origin = None
template.nodelist = self.compile_string(template_string, origin)
rendered = template.render(self.context)
self.context.autoescape = original_autoescape
return rendered
示例5: SpurlURLBuilder
# 需要导入模块: from urlobject import URLObject [as 别名]
# 或者: from urlobject.URLObject import with_port [as 别名]
#.........这里部分代码省略.........
def handle_host_from(self, value):
url = URLObject(value)
self.url = self.url.with_hostname(url.hostname)
def handle_path(self, value):
path = self.prepare_value(value)
self.url = self.url.with_path(path)
def handle_path_from(self, value):
url = URLObject(value)
self.url = self.url.with_path(url.path)
def handle_add_path(self, value):
path_to_add = self.prepare_value(value)
self.url = self.url.add_path(path_to_add)
def handle_add_path_from(self, value):
url = URLObject(value)
path_to_add = url.path
if path_to_add.startswith('/'):
path_to_add = path_to_add[1:]
self.url = self.url.add_path(path_to_add)
def handle_fragment(self, value):
fragment = self.prepare_value(value)
self.url = self.url.with_fragment(fragment)
def handle_fragment_from(self, value):
url = URLObject(value)
self.url = self.url.with_fragment(url.fragment)
def handle_port(self, value):
self.url = self.url.with_port(int(value))
def handle_port_from(self, value):
url = URLObject(value)
self.url = self.url.with_port(url.port)
def handle_autoescape(self, value):
self.autoescape = convert_to_boolean(value)
def set_sensible_defaults(self):
if self.url.hostname and not self.url.scheme:
self.url = self.url.with_scheme('http')
def prepare_value(self, value):
"""Prepare a value by unescaping embedded template tags
and rendering through Django's template system"""
if isinstance(value, basestring):
value = self.unescape_tags(value)
value = self.render_template(value)
return value
def unescape_tags(self, template_string):
"""Spurl allows the use of templatetags inside templatetags, if
the inner templatetags are escaped - {\% and %\}"""
return template_string.replace('{\%', '{%').replace('%\}', '%}')
def compile_string(self, template_string, origin):
"""Re-implementation of django.template.base.compile_string
that takes into account the tags and filter of the parser
that rendered the parent template"""
if settings.TEMPLATE_DEBUG:
from django.template.debug import DebugLexer, DebugParser