如何在python,django中将url解码为路径
Posted
技术标签:
【中文标题】如何在python,django中将url解码为路径【英文标题】:How to decode url to path in python, django 【发布时间】:2014-12-16 19:06:59 【问题描述】:嗨,我需要将 url 转换为路径,我得到的是这个 url,如下所示:
url = u'/static/media/uploads/gallery/Marrakech%2C%20Morocco_be3Ij2N.jpg'
以及看起来像这样的东西:
path = u'/static/media/uploads/gallery/Marrakech, Morocco_be3Ij2N.jpg'
谢谢。
【问题讨论】:
【参考方案1】:使用 python 3.9 和 django 3.2:
解决方案 1:
import urllib
urllib.parse.unquote(url)
解决方案 2:
from django.utils.encoding import uri_to_iri
uri_to_iri(url)
【讨论】:
【参考方案2】:如果你使用 Python3 你可以写
urllib.parse.unquote(url)
【讨论】:
【参考方案3】:使用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'
【讨论】:
请注意,在 Python 3 中,这是在模块urllib.parse
中。
@Humphrey,问题被标记为python-2.7
。以上是关于如何在python,django中将url解码为路径的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django 2 中将 url 中的 # 作为参数传递
如何在 Python 中将“原始”字符串转换为“解码”字符串?
如何在python中将dbus.Array从at解码为十六进制或字符串