2010-05-04 6 views
23

Comment puis-je obtenir l'URL actuelle avec Python,Obtenir l'URL actuelle en Python

je dois saisir l'URL actuelle afin que je puisse le vérifier pour les chaînes de requête, par exemple

requested_url = "URL_HERE" 

url = urlparse(requested_url) 

if url[4]: 
    params = dict([part.split('=') for part in url[4].split('&')]) 

aussi cela fonctionne en Google App Engine

Répondre

51

Essayez ceci:

self.request.url 

Aussi, si vous avez juste besoin querystring, cela fonctionnera:

self.request.query_string 

Et enfin, si vous connaissez la variable querystring que vous cherchez, vous pouvez le faire:

self.request.get("name-of-querystring-variable") 
+0

self.request.query_string fonctionne très bien – Alex

0

Essayez cette

import os 
url = os.environ['HTTP_HOST'] 
+1

cela semble ignorer toutes les chaînes de requête comme il est seulement saisissant l'URL hôte: ParseResult (scheme = 'localhost', netloc = '', chemin = '8080', params = '', query = '', fragment = '') – Alex

3

Pour quiconque de trouver ce via google,

i figured it out,

vous pouvez obtenir les chaînes de requête sur votre demande actuelle à l'aide:

url_get = self.request.GET 

qui est une UnicodeMultiDict de vos chaînes de requête!

+0

Oui, en général, vous voulez utiliser les outils fourni par votre infrastructure et ne pas analyser les URL manuellement; C'est un problème résolu. – geoffspear

0

Je ne pouvais pas les autres réponses à travailler, mais voici ce qui a fonctionné pour moi:

url = os.environ['HTTP_HOST'] 
    uri = os.environ['REQUEST_URI'] 
    return url + uri 
Questions connexes