¿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
myDomainSelf = os.environ.get (‘SERVER_NAME’)
myPathSelf = os.environ.get (‘PATH_INFO’)
myURLSelf = myDomainSelf + myPathSelf
myQuerySelf = os.environ.get (‘QUERY_STRING’)
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")
mySpy = “myURLSelf: [” + str (myURLSelf) + “] \ n”
mySpy = mySpy + “myQuerySelf: [” + str (myQuerySelf) + “] \ n”
mySpy = mySpy + “myPostData: [” + str (myPostData) + “] \ n”
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.