2017-02-04 59 views
1

我有形式如何獲得一個網址的一部分,沒有協議,也不域

http://example.com/example/a/b/c.html 
https//www.example.com/ 

我如何從服務器的根目錄的路徑的網址,沒有協議或域名?通過上面的例子中,函數返回:

/example/a/b/c.html 
/

(我使用Django:答案依靠這個框架被接受)

+0

也許只是簡單的正則表達式? '(https?| ftp)。+?\ w(\ /.*)' – BladeMight

回答

4

urlparse模塊可以解決這個問題:

from urlparse import urlparse # for python 2 
from urllib.parse import urlparse # for python 3 

parsed_url = urlparse('http://example.com/abc/cde') 
assert parsed_url.path == '/abc/cde' 
2

你可以使用的django HttpRequest對象的屬性path,換句話說:

request.path 

查看docs瞭解更多

+0

Django在內部使用urllib('grep -ri urllib path/to/django/django')。從我的角度來看,這個答案應該是可取的,因爲你不需要重複之前發生的事情(只要你想在視圖中使用它)。 – dahrens