是否有办法对请求网址进行编码?

时间:2018-04-09 09:46:59

标签: python django django-rest-framework

是否有办法对请求网址进行编码?

比如,我可以使用url来请求Django / Django-Rest-Framework提供图片:

https://localhost:8000/images/icon.png

我是否可以使用中间件或其他任何来编码网址?

因为如果icon.png你好.png,我想将网址编码为utf-8

是否可行?

修改-1

我的意思是,在Django后端,我是否可以在请求之前对网址进行编码?

有一个例子:

https://www.google.com/images/icon.png

如果google.com使用Django作为后端,这个网址可以请求后端,我是否可以在查询后端之前获取请求网址,然后为网址做一些事情,然后让网址请求后端?在Django。

修改-2

我在第一个中间件中突破了这一点,但是当我直接在浏览器中请求img请求url时,它没有得到断点:

enter image description here

修改-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 个答案:

答案 0 :(得分:-1)

使用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