从 URL 中删除域名
Remove the domain name from URLs
我需要从具有不同架构的 URL 中删除域名。
url的例子:
http://www.example.org/cat1/page1
example.org/cat1/page1
https://www.example.org/cat1/page1
结果:
cat1/page1
它可以在 django 模板或视图上完成。
使用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'
请求对象也有这个信息:
https://docs.djangoproject.com/en/1.7/ref/request-response/#module-django.http
HttpRequest.path
表示所请求页面的完整路径的字符串,不包括域。
示例:“/music/bands/the_beatles/”
这将使您获得当前页面的路径,因此它可能不适用于您的情况
我需要从具有不同架构的 URL 中删除域名。 url的例子:
http://www.example.org/cat1/page1
example.org/cat1/page1
https://www.example.org/cat1/page1
结果:
cat1/page1
它可以在 django 模板或视图上完成。
使用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'
请求对象也有这个信息:
https://docs.djangoproject.com/en/1.7/ref/request-response/#module-django.http
HttpRequest.path 表示所请求页面的完整路径的字符串,不包括域。
示例:“/music/bands/the_beatles/”
这将使您获得当前页面的路径,因此它可能不适用于您的情况