Есть ли способ закодировать URL запроса?

-1

Есть ли способ кодирования 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 непосредственно в браузере:

Изображение 174551


РЕДАКТИРОВАТЬ-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
  • 1
    url.encode('utf8') ?
  • 0
    Но я не знаю, где это закодировать. могу ли в промежуточном программном обеспечении получить URL-адрес запроса?
Показать ещё 3 комментария
Теги:
django-rest-framework

1 ответ

-2

Используйте 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню