本文整理匯總了Python中tornado.escape.url_escape方法的典型用法代碼示例。如果您正苦於以下問題:Python escape.url_escape方法的具體用法?Python escape.url_escape怎麽用?Python escape.url_escape使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類tornado.escape
的用法示例。
在下文中一共展示了escape.url_escape方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _check_group_whitelist
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def _check_group_whitelist(self, user_id, access_token):
http_client = AsyncHTTPClient()
headers = _api_headers(access_token)
# Check if user is a member of any group in the whitelist
for group in map(url_escape, self.gitlab_group_whitelist):
url = "%s/groups/%s/members/%s%d" % (
self.gitlab_api,
quote(group, safe=''),
self.member_api_variant,
user_id,
)
req = HTTPRequest(url, method="GET", headers=headers)
resp = await http_client.fetch(req, raise_error=False)
if resp.code == 200:
return True # user _is_ in group
return False
示例2: _render
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def _render(self, login_error=None, username=None):
self._register_template_path()
return self.render_template(
'native-login.html',
next=url_escape(self.get_argument('next', default='')),
username=username,
login_error=login_error,
custom_html=self.authenticator.custom_html,
login_url=self.settings['login_url'],
enable_signup=self.authenticator.enable_signup,
two_factor_auth=self.authenticator.allow_2fa,
authenticator_login_url=url_concat(
self.authenticator.login_url(self.hub.base_url),
{'next': self.get_argument('next', '')},
),
)
示例3: init_app
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def init_app(cls, application, jinja_options=None):
"""Init the application."""
app_settings = application.settings
_loader = FileSystemLoader(
app_settings.get('template_path', 'templates')
)
_jinja_config = {
'extensions': ['jinja2.ext.autoescape', 'jinja2.ext.with_'],
'auto_reload': app_settings.get('autoreload', False),
'loader': _loader,
'cache_size': 50 if app_settings.get('compiled_template_cache', True) else 0,
'autoescape': app_settings.get('autoescape', 'xhtml_escape') == "xhtml_escape"
}
_jinja_config.update(**(jinja_options or {}))
environment = Environment(**_jinja_config)
application.jinja_environment = environment
app_settings['jinja_environment'] = environment
environment.filters.update(tojson=tojson_filter, xhtml_escape=xhtml_escape, url_escape=url_escape, squeeze=squeeze, linkify=linkify)
return environment
示例4: fetch
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def fetch(request, *parts, **kwargs):
# Handle URL strings
# Since base_url is already escaped, unescape it.
path = url_escape(url_path_join(*parts), plus=False)
# Make request.
method = 'GET'
if 'method' in kwargs and kwargs['method']:
method = kwargs['method']
body = None
if 'body' in kwargs and kwargs['body']:
body = kwargs['body']
return request(method, path, data=body)
# END - Remove once transition to jupyter_server occurs
示例5: make_oembed_url
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def make_oembed_url(url):
url_parsed = None
try:
url_parsed = urlparse(url)
except:
return None
if url_parsed.hostname.lower() not in ['youtube.com', 'www.youtube.com', 'vimeo.com', 'www.vimeo.com', 'youtu.be', 'flic.kr', 'flickr.com', 'www.flickr.com']:
return None
oembed_url = None
if url_parsed.hostname.lower() in ['youtube.com', 'www.youtube.com', 'youtu.be']:
to_url = 'https://%s%s?%s' % (url_parsed.hostname, url_parsed.path, url_parsed.query)
oembed_url = 'https://www.youtube.com/oembed?url=%s&maxwidth=550&format=json' % (url_escape(to_url))
elif url_parsed.hostname.lower() in ['vimeo.com', 'www.vimeo.com']:
to_url = 'https://%s%s' % (url_parsed.hostname, url_parsed.path)
oembed_url = 'https://vimeo.com/api/oembed.json?url=%s&maxwidth=550' % (url_escape(to_url))
elif url_parsed.hostname.lower() in ['flic.kr', 'flickr.com', 'www.flickr.com']:
to_url = 'https://%s%s' % (url_parsed.hostname, url_parsed.path)
oembed_url = 'https://www.flickr.com/services/oembed/?url=%s&maxwidth=550&format=json' % (url_escape(to_url))
return oembed_url
示例6: test_another_user_commenting_will_update_the_files_activity_at
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def test_another_user_commenting_will_update_the_files_activity_at(self):
request = HTTPRequest(self.get_url('/p/%s/comment' % self.shf.share_key), 'POST', {'Cookie':'_xsrf=%s;sid=%s' % (self.xsrf, self.sid)}, "body=%s&_xsrf=%s" % (url_escape("a comment"), self.xsrf))
self.http_client.fetch(request, self.stop)
response = self.wait()
time.sleep(1)
sf = Sharedfile.get('id=%s', self.shf.id)
activity_one = sf.activity_at
request = HTTPRequest(self.get_url('/p/%s/comment' % self.shf.share_key), 'POST', {'Cookie':'_xsrf=%s;sid=%s' % (self.xsrf, self.sid)}, "body=%s&_xsrf=%s" % (url_escape("a second comment"), self.xsrf))
self.http_client.fetch(request, self.stop)
response = self.wait()
sf = Sharedfile.get('id=%s', self.shf.id)
activity_two = sf.activity_at
self.assertTrue(activity_two > activity_one)
示例7: connect_kernel
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def connect_kernel():
# TODO check status busy/idle
run_sync(manager.list_kernels())
kernels = {
kernel_id: dateparser.parse(kernel["last_activity"])
for kernel_id, kernel in manager._kernels.items()
}
kernel_id = url_escape(sorted(kernels, key=kernels.get)[0])
client = GatewayClient.instance()
url = url_path_join(client.ws_url, client.kernels_endpoint, kernel_id, "channels")
ws_req = HTTPRequest(url=url)
return run_sync(websocket_connect(ws_req))
示例8: post
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def post(self) -> None:
lexer = self.get_body_argument("lexer")
raw = self.get_body_argument("code", strip=False)
expiry = self.get_body_argument("expiry")
filename = self.get_body_argument("filename", None)
if not raw.strip():
log.info("APINew.post: a paste was submitted without content")
raise tornado.web.HTTPError(400)
if lexer not in utility.list_languages():
log.info("APINew.post: a paste was submitted with an invalid lexer")
raise tornado.web.HTTPError(400)
if expiry not in utility.expiries:
log.info(
"APINew.post: a paste was submitted with an invalid expiry"
)
raise tornado.web.HTTPError(400)
paste = database.Paste(
utility.slug_create(), utility.expiries[expiry], "deprecated-api"
)
paste.files.append(database.File(paste.slug, raw, lexer, filename))
with database.session() as session:
session.add(paste)
session.commit()
req_url = self.request.full_url()
location = paste.slug
if filename:
location += "#" + url_escape(filename)
self.write(
{
"paste_id": paste.slug,
"removal_id": paste.removal,
"paste_url": urljoin(req_url, f"/{location}"),
"raw_url": urljoin(req_url, f"/raw/{paste.files[0].slug}"),
}
)
示例9: reverse
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def reverse(self, *args):
assert self._path is not None, \
"Cannot reverse url regex " + self.regex.pattern
assert len(args) == self._group_count, "required number of arguments "\
"not found"
if not len(args):
return self._path
converted_args = []
for a in args:
if not isinstance(a, (unicode_type, bytes)):
a = str(a)
converted_args.append(escape.url_escape(utf8(a), plus=False))
return self._path % tuple(converted_args)
示例10: generate
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def generate(self, **kwargs):
"""用給定參數生成此模板."""
namespace = {
"escape": escape.xhtml_escape,
"xhtml_escape": escape.xhtml_escape,
"url_escape": escape.url_escape,
"json_encode": escape.json_encode,
"squeeze": escape.squeeze,
"linkify": escape.linkify,
"datetime": datetime,
"_tt_utf8": escape.utf8, # for internal use
"_tt_string_types": (unicode_type, bytes),
# __name__ and __loader__ allow the traceback mechanism to find
# the generated source code.
"__name__": self.name.replace('.', '_'),
"__loader__": ObjectDict(get_source=lambda name: self.code),
}
namespace.update(self.namespace)
namespace.update(kwargs)
exec_in(self.compiled, namespace)
execute = namespace["_tt_execute"]
# Clear the traceback module's cache of source data now that
# we've generated a new template (mainly for this module's
# unittests, where different tests reuse the same name).
linecache.clearcache()
return execute()
示例11: test_task_handler
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def test_task_handler(self):
response = self.fetch('/task?url=%s' % url_escape(self.get_url('/sequence')))
self.assertEqual(response.body, b"got response: 123")
示例12: test_url_escape_unicode
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def test_url_escape_unicode(self):
tests = [
# byte strings are passed through as-is
(u('\u00e9').encode('utf8'), '%C3%A9'),
(u('\u00e9').encode('latin1'), '%E9'),
# unicode strings become utf8
(u('\u00e9'), '%C3%A9'),
]
for unescaped, escaped in tests:
self.assertEqual(url_escape(unescaped), escaped)
示例13: test_url_escape_quote_plus
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def test_url_escape_quote_plus(self):
unescaped = '+ #%'
plus_escaped = '%2B+%23%25'
escaped = '%2B%20%23%25'
self.assertEqual(url_escape(unescaped), plus_escaped)
self.assertEqual(url_escape(unescaped, plus=False), escaped)
self.assertEqual(url_unescape(plus_escaped), unescaped)
self.assertEqual(url_unescape(escaped, plus=False), unescaped)
self.assertEqual(url_unescape(plus_escaped, encoding=None),
utf8(unescaped))
self.assertEqual(url_unescape(escaped, encoding=None, plus=False),
utf8(unescaped))
示例14: _star
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def _star(self, notebook_name, note_name, star, redir=True):
starred = self.get_starred()
full_name = u'%s/%s' % (notebook_name, note_name)
if star == 'set' and full_name not in starred:
starred.append(full_name)
elif star == 'unset' and full_name in starred:
starred.remove(full_name)
self.set_cookie('starred_notes',
b64encode(','.join(starred).encode('utf8')),
expires_days=365)
if redir:
self.redirect('/%s/%s' % (url_escape(notebook_name).replace('#', '%23'), url_escape(note_name).replace('#', '%23')))
示例15: generate
# 需要導入模塊: from tornado import escape [as 別名]
# 或者: from tornado.escape import url_escape [as 別名]
def generate(self, **kwargs: Any) -> bytes:
"""Generate this template with the given arguments."""
namespace = {
"escape": escape.xhtml_escape,
"xhtml_escape": escape.xhtml_escape,
"url_escape": escape.url_escape,
"json_encode": escape.json_encode,
"squeeze": escape.squeeze,
"linkify": escape.linkify,
"datetime": datetime,
"_tt_utf8": escape.utf8, # for internal use
"_tt_string_types": (unicode_type, bytes),
# __name__ and __loader__ allow the traceback mechanism to find
# the generated source code.
"__name__": self.name.replace(".", "_"),
"__loader__": ObjectDict(get_source=lambda name: self.code),
}
namespace.update(self.namespace)
namespace.update(kwargs)
exec_in(self.compiled, namespace)
execute = typing.cast(Callable[[], bytes], namespace["_tt_execute"])
# Clear the traceback module's cache of source data now that
# we've generated a new template (mainly for this module's
# unittests, where different tests reuse the same name).
linecache.clearcache()
return execute()