Obtener URL actual en Python

¿Cómo obtendría la URL actual con Python,

Necesito capturar la URL actual para poder verificar si hay 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 está ejecutando en Google App Engine.

Prueba esto:

 self.request.url 

Además, si solo necesitas la cadena de consulta, esto funcionará:

 self.request.query_string 

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

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

Para cualquiera que encuentre esto a través de google,

me lo imaginé,

puede obtener las cadenas de consulta en su solicitud actual usando:

 url_get = self.request.GET 

que es un UnicodeMultiDict de sus cadenas de consulta!

Prueba esto

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

No pude hacer que las otras respuestas funcionaran, pero esto es lo que funcionó para mí:

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

Así es como capturo en Python 3 desde la URL de CGI (A), (B) parámetros GET y (C) datos POST:

================================================== =====

import sys, os, io

URL de CAPTURA

myDomainSelf = os.environ.get (‘SERVER_NAME’)

myPathSelf = os.environ.get (‘PATH_INFO’)

myURLSelf = myDomainSelf + myPathSelf

Captar obtener datos

myQuerySelf = os.environ.get (‘QUERY_STRING’)

DATOS POSTALES DE CAPTURA

myTotalBytesStr = (os.environ.get (‘HTTP_CONTENT_LENGTH’))

if (myTotalBytesStr == Ninguna):

 myJSONStr = '{"error": {"value": true, "message": "No (post) data received"}}' 

más:

 myTotalBytes=int(os.environ.get('HTTP_CONTENT_LENGTH')) myPostDataRaw = io.open(sys.stdin.fileno(),"rb").read(myTotalBytes) myPostData = myPostDataRaw.decode("utf-8") 

Escribir RAW en FILE

mySpy = “myURLSelf: [” + str (myURLSelf) + “] \ n”

mySpy = mySpy + “myQuerySelf: [” + str (myQuerySelf) + “] \ n”

mySpy = mySpy + “myPostData: [” + str (myPostData) + “] \ n”

Necesitas definir tu propia myPath aquí

myFilename = “spy.txt”

myFilePath = myPath + “\” + myFilename

myFile = abierto (myFilePath, “w”)

myFile.write (mySpy)

miarchivo.close ()

================================================== =====

Aquí hay algunos otros vars de entorno CGI útiles:

TIPO DE AUTENTICACIÓN

LARGANCIA DE CONTENIDO

TIPO DE CONTENIDO

GATEWAY_INTERFACE

PATH_INFO

PATH_TRANSLATED

QUERY_STRING

REMOTE_ADDR

SERVIDOR REMOTO

REMOTE_IDENT

REMOTE_USER

REQUEST_METHOD

SCRIPT_NAME

NOMBRE DEL SERVIDOR

PUERTO DE SERVICIO

SERVER_PROTOCOL

SERVER_SOFTWARE

============================================

Estoy utilizando estos métodos para ejecutar Python 3 en Windows Server con CGI a través de MIIS.

Espero que esto le pueda ayudar.