如何在Python、Django中解码URL到路径

27 投票
3 回答
18438 浏览
提问于 2025-04-28 19:27

你好,我需要把网址转换成路径,我现在有一个网址,如下所示:

url = u'/static/media/uploads/gallery/Marrakech%2C%20Morocco_be3Ij2N.jpg'

我希望它看起来像这样:

path = u'/static/media/uploads/gallery/Marrakech, Morocco_be3Ij2N.jpg'

谢谢。

暂无标签

3 个回答

1

使用Python 3.9Django 3.2

解决方案 1:

import urllib
urllib.parse.unquote(url)

解决方案 2:

from django.utils.encoding import uri_to_iri
uri_to_iri(url)
17

如果你在使用Python3,你可以这样写:

urllib.parse.unquote(url)
32

使用 urllib.unquote 可以解码那些用 % 符号编码的字符串:

>>> import urllib
>>> url = u'/static/media/uploads/gallery/Marrakech%2C%20Morocco_be3Ij2N.jpg'
>>> urllib.unquote(url)
u'/static/media/uploads/gallery/Marrakech, Morocco_be3Ij2N.jpg'

如果你使用 urllib.quote 或者 urllib.quote_plus,你就可以得到:

>>> urllib.quote(u'/static/media/uploads/gallery/Marrakech, Morocco_be3Ij2N.jpg')
'/static/media/uploads/gallery/Marrakech%2C%20Morocco_be3Ij2N.jpg'

撰写回答