2010-05-04 44 views
23

¿Cómo puedo obtener la URL actual con Python,Obtener URL actual en Python

necesito para agarrar la URL actual para que pueda comprobar que las cadenas de consulta, por ejemplo,

requested_url = "URL_HERE" 

url = urlparse(requested_url) 

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

También esto se ejecuta en Google App Engine

Respuesta

51

Prueba esto:

self.request.url 

Además, si sólo tiene la cadena de consulta, esto va a funcionar:

self.request.query_string 

Y, por último, si conoce la variable de cadena de consulta que usted está buscando, usted puede hacer esto:

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

self.request.query_string funciona de maravilla, gracias – Alex

0

Prueba este

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

esto parece ignorar las cadenas de consulta, ya que sólo está agarrando la URL de destino: ParseResult (esquema = 'localhost', netloc = '', path = '8080 ', params =' ', query =' ', fragment =' ') – Alex

3

Para cualquiera encontrar esto a través de Google,

lo he descubierto,

puede obtener las secuencias de la pregunta sobre su solicitud actual usando:

url_get = self.request.GET 

que es un UnicodeMultiDict de sus cadenas de consulta!

+0

Sí, en general, usted quiere usar las herramientas proporcionado por su marco y no analiza manualmente las URL; este es un problema resuelto. – geoffspear

0

no pude conseguir las otras respuestas a trabajar, pero aquí es lo que funcionó para mí:

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