Есть ли способ кодирования URL-адреса запроса?
Например, я могу использовать url для запроса Django/Django-Rest-Framework:
https://localhost:8000/images/icon.png
могу ли я использовать промежуточное программное обеспечение или что-то еще, чтобы закодировать URL-адрес?
потому что если icon.png
является 你好.png
, я хочу, чтобы кодировать URL в utf-8
.
Возможно ли это?
EDIT-1
Я имею в виду, в бэкэнде Django, могу ли я кодировать URL-адрес до его запроса?
Существует пример:
https://www.google.com/images/icon.png
Этот URL-адрес может запрашивать бэкэнд, если google.com
использует сервер Django как бэкэнд, могу ли я получить URL-адрес запроса перед тем, как он запросит бэкэнд, а затем сделать что-то для URL-адреса, а затем позволить URL-адресу запросить бэкэнд? в Django.
РЕДАКТИРОВАТЬ-2
Я нарушаю точку в первом промежуточном программном обеспечении, но он не получает точку останова, когда я запрашиваю URL-адрес запроса img непосредственно в браузере:
РЕДАКТИРОВАТЬ-3
Это я поставил в последнем промежуточном порядке:
class AccessControl(MiddlewareMixin):
def process_request(self, request):
if 'HTTP_ACCESS_CONTROL_REQUEST_METHOD' in request.META:
response = http.HttpResponse()
response["Access-Control-Allow-Origin"]= "*"
response["Access-Control-Allow-Credentials"] = "true"
response["Access-Control-Allow-Methods"]= "GET,HEAD,OPTIONS,POST,PUT"
response["Access-Control-Allow-Headers"] = "Authentication , Authorization , X-CSRF-Token , " \
"Access-Control-Allow-Credentials , " \
"Access-Control-Allow-Methods , Access-Control-Allow-Origin , " \
"Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, " \
"Content-Type, Access-Control-Request-Method, " \
"Access-Control-Request-Headers"
return response
return None
Используйте urllib
(python 2) или urllib.parse
(python 3)
Python 2
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import urllib
print urllib.quote_plus('你好.png')
Python 3
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import urllib.parse
urllib.parse.quote_plus('你好.png')
Результат:
%E4%BD%A0%E5%A5%BD.png
url.encode('utf8')
?