2012-08-13 2 views
0

У меня нет , чтобы использовать os.environ, но это может быть самый простой способ.Получить текущий URL-адрес в Python с помощью os.environ

я могу успешно получить предыдущий URL с помощью:

sURL = os.getenv('HTTP_REFERER') 

и аргументы текущей строки с помощью:

sURL = os.environ['QUERY_STRING'] 

, но я не могу получить текущий URL.

Other answers here посоветуете:

sURL = self.request.url 

(или self.request.host), но когда я делаю, что я получаю:

sURL = self.request.url NameError: global name 'self' is not defined 

Как я могу легко получить текущий URL?

Полный код:

import os 

def GetTestMode(): 

    sURL = self.request.url 
    print '<br />sURL = ' + sURL + '<br />' 
+0

Пожалуйста, добавьте контекст. Какой у вас класс? –

+0

Вы должны сообщить нам, какую структуру веб-приложений вы используете. Django? Turbogears? –

+0

@Tichodroma: создал его вне класса (полный новичок). Это необходимо? – Wikis

ответ

1

Благодаря коллеге, это может быть решено с помощью:

import os.path 
    sURL = os.path.realpath('.') 
    print 'sURL = ' + sURL + '<br />' 

См os.path, который говорит, «Возвращение канонического пути указанного файла, устраняя любой символические ссылки, встречающиеся в пути (если они поддерживаются операционной системой) ».

Так что это не возвращает URL-адрес, но путь к файлу, но я также могу использовать его.

+0

Это не совсем то, что я просил, но, поскольку он работает для меня, я отправляю его в надежде, что он может принести пользу другим. – Wikis

+0

Примечание: Я опубликовал альтернативное решение [здесь] (http://stackoverflow.com/a/22805154/283650). – Wikis

Смежные вопросы