从URL中删除域名

时间:2015-03-20 12:06:33

标签: django django-templates

我需要从具有不同方案的网址中删除域名。 网址示例:

http://www.example.org/cat1/page1
example.org/cat1/page1
https://www.example.org/cat1/page1

结果:

cat1/page1

可以在django模板或视图上完成。

2 个答案:

答案 0 :(得分:2)

使用urlparse模块:

>>> from urlparse import urlparse
>>> o = urlparse('http://www.example.org/cat1/page1')
>>> o.path
'/cat1/page1'

请注意,example.org/cat1/page1是有效路径,因此您无法从中删除该域。作为解决方法,您可以手动将协议添加到url字符串:

>>> url  = 'example.org/cat1/page1'
>>> if not '//' in url:
...     url = 'http://' + url
... 
>>> o = urlparse(url)
>>> o.path
'/cat1/page1'

答案 1 :(得分:0)

请求对象也有以下信息:

https://docs.djangoproject.com/en/1.7/ref/request-response/#module-django.http

HttpRequest.path 一个字符串,表示所请求页面的完整路径,不包括域。

示例:“/ music / bands / the_beatles /”

这将让您获取当前页面的路径,因此它可能无法在您的情况下使用