本文整理汇总了Python中urllib.parse.url_quote函数的典型用法代码示例。如果您正苦于以下问题:Python url_quote函数的具体用法?Python url_quote怎么用?Python url_quote使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了url_quote函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_link
def create_link(href, base_dir, runResult=None, href_base=None):
def get_replacements(source_file):
return [
('inputfile_name', os.path.basename(source_file)),
('inputfile_path', os.path.dirname(source_file) or '.'),
('inputfile_path_abs', os.path.dirname(os.path.abspath(source_file))),
# The following are deprecated: do not use anymore.
('sourcefile_name', os.path.basename(source_file)),
('sourcefile_path', os.path.dirname(source_file) or '.'),
('sourcefile_path_abs', os.path.dirname(os.path.abspath(source_file))),
] + ([
('logfile_name', os.path.basename(runResult.log_file)),
('logfile_path', os.path.dirname(os.path.relpath(runResult.log_file, href_base or '.')) or '.'),
('logfile_path_abs', os.path.dirname(os.path.abspath(runResult.log_file))),
] if runResult.log_file else [])
source_file = os.path.relpath(runResult.task_id[0], href_base or '.') if runResult else None
if is_url(href):
# quote special characters only in inserted variable values, not full URL
if source_file:
source_file = url_quote(source_file)
href = benchexec.util.substitute_vars(href, get_replacements(source_file))
return href
# quote special characters everywhere (but not twice in source_file!)
if source_file:
href = benchexec.util.substitute_vars(href, get_replacements(source_file))
return url_quote(os.path.relpath(href, base_dir))
示例2: authenticate
def authenticate(self, environ):
""" This function takes a WSGI environment and authenticates
the request returning authenticated user or error.
"""
method = REQUEST_METHOD(environ)
fullpath = url_quote(SCRIPT_NAME(environ)) + url_quote(PATH_INFO(environ))
authorization = AUTHORIZATION(environ)
if not authorization:
return self.build_authentication()
(authmeth, auth) = authorization.split(" ", 1)
if 'digest' != authmeth.lower():
return self.build_authentication()
amap = dict(_auth_to_kv_pairs(auth))
try:
username = amap['username']
authpath = amap['uri']
nonce = amap['nonce']
realm = amap['realm']
response = amap['response']
assert authpath.split("?", 1)[0] in fullpath
assert realm == self.realm
qop = amap.get('qop', '')
cnonce = amap.get('cnonce', '')
nc = amap.get('nc', '00000000')
if qop:
assert 'auth' == qop
assert nonce and nc
except:
return self.build_authentication()
ha1 = self.authfunc(environ, realm, username)
return self.compute(ha1, username, response, method, authpath,
nonce, nc, cnonce, qop)
示例3: get_forecast_data
def get_forecast_data(latitude, longitude):
latitude, longitude = url_quote(str(latitude)), url_quote(str(longitude))
url = 'https://api.forecast.io/forecast/{}/{},{}'.format(FORECAST_API_KEY, latitude, longitude)
response = requests.get(url)
if response.status_code == 200:
return WeatherData(response.json())
else:
raise ValueError('Could not fetch weather forecast.', latitude, longitude, response)
示例4: get_links
def get_links(query, no_ssl):
if no_ssl:
search_url = "http://" + SEARCH_URL.format(url_quote(query))
else:
search_url = "https://" + SEARCH_URL.format(url_quote(query))
result = get_result(search_url)
html = pq(result)
return [a.attrib['href'] for a in html('.l')] or \
[a.attrib['href'] for a in html('.r')('a')]
示例5: _get_authorization
def _get_authorization(self, request, httpclient):
uri = self.host
uri = url_quote(uri, '').lower()
expiry = str(self._get_expiry())
to_sign = uri + '\n' + expiry
signature = url_quote(_sign_string(self.key_value, to_sign, 1))
auth_format = 'SharedAccessSignature sig={0}&se={1}&skn={2}&sr={3}'
auth = auth_format.format(signature, expiry, self.key_name, self.host)
return auth
示例6: create_link
def create_link(runResult, base_dir, column):
source_file = runResult.task_id[0]
href = column.href or runResult.log_file
if href.startswith("http://") or href.startswith("https://") or href.startswith("file:"):
# quote special characters only in inserted variable values, not full URL
source_file = url_quote(source_file)
href = model.substitute_vars([href], None, source_file)[0]
return href
# quote special characters everywhere (but not twice in source_file!)
href = model.substitute_vars([href], None, source_file)[0]
return url_quote(os.path.relpath(href, base_dir))
示例7: get_links
def get_links(query):
localization_url = LOCALIZATON_URLS[LOCALIZATION]
pr_debug(url_quote(query))
pr_debug(2, SEARCH_URL.format(localization_url, url_quote(query)))
result = get_result(SEARCH_URL.format(localization_url, url_quote(query)))
html = pq(result)
#return [a.attrib['href'] for a in html('.l')] or \
#[a.attrib['href'] for a in html('.r')('a')]
for a in html('.l'):
pr_debug("123", a.text())
links = [a.attrib['href'] for a in html('.l')] or \
[a.attrib['href'] for a in html('.r')('a')]
pr_debug(' '.join(links))
return links
示例8: post
def post(self, url, recipient_public_key):
"""
Actually send the message to an HTTP/HTTPs endpoint.
"""
xml = url_quote(self.create_salmon_envelope(recipient_public_key))
data = urlencode({"xml": xml})
return urlopen(url, data.encode("ascii"))
示例9: _get_feed_episodes
def _get_feed_episodes(self, show_key, **kwargs):
"""
Always returns a list.
"""
info("Getting episodes for Nyaa/{}".format(show_key))
if "domain" not in self.config or not self.config["domain"]:
error(" Domain not specified in config")
return list()
# Send request
query = re.sub("[`[email protected]#$%^&*()+=:;,.<>?/|\\'\"]+", " ", show_key)
query = re.sub(" ", " ", query)
debug(" query={}".format(query))
query = url_quote(query, safe="", errors="ignore")
url = self._search_base.format(domain=self.config["domain"], q=query)
response = self.request(url, rss=True, **kwargs)
if response is None:
error("Cannot get latest show for Nyaa/{}".format(show_key))
return list()
# Parse RSS feed
if not _verify_feed(response):
warning("Parsed feed could not be verified, may have unexpected results")
return response.get("entries", list())
示例10: _update_request
def _update_request(request):
# Verify body
if request.body:
request.body = _get_data_bytes_or_stream_only('request.body', request.body)
length = _len_plus(request.body)
# only scenario where this case is plausible is if the stream object is not seekable.
if length is None:
raise ValueError(_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM)
# if it is PUT, POST, MERGE, DELETE, need to add content-length to header.
if request.method in ['PUT', 'POST', 'MERGE', 'DELETE']:
request.headers['Content-Length'] = str(length)
# append addtional headers based on the service
request.headers['x-ms-version'] = X_MS_VERSION
request.headers['User-Agent'] = USER_AGENT_STRING
request.headers['x-ms-client-request-id'] = str(uuid.uuid1())
# If the host has a path component (ex local storage), move it
path = request.host.split('/', 1)
if len(path) == 2:
request.host = path[0]
request.path = '/{}{}'.format(path[1], request.path)
# Encode and optionally add local storage prefix to path
request.path = url_quote(request.path, '/()$=\',~')
示例11: get_data_url
def get_data_url(self, max_width = None):
data_url = b'data:{};base64,{}'
if self.is_image():
image_file = ImageBufferIO(self.file_data)
output = ImageBufferIO()
try:
image = Image.open(image_file)
s = image.size
if max_width and s[0] > max_width:
ratio = max_width / s[0]
width = s[0] * ratio
height = s[1] * ratio
self._generate_thumbnail(image, output, (width, height))
file_data = output.getvalue()
else:
file_data = image_file.getvalue()
except IOError:
file_data = self.file_data
logger.exception('Error when trying to resize image for data: url')
else:
file_data = self.file_data
data = bytes(url_quote(file_data.encode('base64')))
return data_url.format(self.content_type, data)
示例12: register_basic_user
def register_basic_user(request):
"""
Register a user with username and password
"""
if request.method != 'POST':
return HttpResponseNotAllowed(['POST'])
if request.JSON is None:
return JsonResponse(
{'error': 'Expected a json request'}, status=400)
for key in ('email', 'username', 'password'):
if key not in request.JSON:
return JsonResponse(
{'error': 'Required key {0} not found in body'.format(key)},
status=400)
username = request.JSON['username']
try:
user = User.objects.get_by_natural_key(User.Type.BASIC, username)
return JsonResponse({'error': 'User already exists'},
status=400)
except User.DoesNotExist:
user = User.objects.create_basic_user(username=username,
email=request.JSON['email'],
password=request.JSON['password'])
response = partial_json_response(request, USER_RESOURCE.to_json(user))
auth_token = user.get_auth_token(request.JSON['password'])
user = authenticate(username=username, force=True)
response.set_cookie(
'authToken',
url_quote(auth_token),
## TODO: auth token should be http only.
# httponly=True
)
return response
示例13: show_search
def show_search(show):
show = url_quote(show)
url = endpoints.show_search.format(show)
q = query_endpoint(url)
if q:
return q
else:
raise ShowNotFound(str(show) + ' not found')
示例14: getBaseUrl
def getBaseUrl(self):
'''Return a file: URL that probably points to the basedir.
This is used as a halfway sane default when the base URL is not
provided; not perfect, but should work in most cases.'''
components = util.splitpath(os.path.abspath(self.basepath))
url = '/'.join([url_quote(component, '') for component in components])
return 'file:///' + url + '/'
示例15: people_search
def people_search(person):
person = url_quote(person)
url = endpoints.people_search.format(person)
q = query_endpoint(url)
if q:
return q
else:
raise PersonNotFound('Couldn\'t find person: ' + str(person))