web-dev-qa-db-fra.com

Obtenir l'URL actuelle en Python

Comment pourrais-je obtenir l'URL actuelle avec Python, 

J'ai besoin de saisir l'URL actuelle pour pouvoir la vérifier, par exemple

requested_url = "URL_HERE"

url = urlparse(requested_url)

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

cela fonctionne aussi dans Google App Engine

23
Alex

Essaye ça:

self.request.url

De plus, si vous avez juste besoin de la chaîne de requête, cela fonctionnera:

self.request.query_string

Et, enfin, si vous connaissez la variable de chaîne de requête que vous recherchez, vous pouvez le faire:

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

Pour quiconque trouver cela via Google, 

je l'ai compris,

vous pouvez obtenir les chaînes de requête sur votre demande actuelle en utilisant:

url_get = self.request.GET

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

3
Alex

Essaye ça

import os
url = os.environ['HTTP_Host']
0
Arty

Voici comment je capture en Python 3 à partir d'une URL CGI (A), de paramètres (B) GET et de données (C) POST:

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

système d'importation, os, io

CAPTURE URL

myDomainSelf = os.environ.get ('SERVER_NAME')

myPathSelf = os.environ.get ('PATH_INFO')

myURLSelf = myDomainSelf + myPathSelf

CAPTURE GET DATA

myQuerySelf = os.environ.get ('QUERY_STRING')

CAPTURE POST DATA

myTotalBytesStr = (os.environ.get ('HTTP_CONTENT_LENGTH'))

si (myTotalBytesStr == Aucun):

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

autre:

myTotalBytes=int(os.environ.get('HTTP_CONTENT_LENGTH'))

myPostDataRaw = io.open(sys.stdin.fileno(),"rb").read(myTotalBytes)

myPostData = myPostDataRaw.decode("utf-8")

Ecrire RAW dans FILE

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

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

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

Vous devez définir votre propre myPath ici

monFichier = "spy.txt"

myFilePath = myPath + "\" + myFilename

myFile = open (myFilePath, "w")

myFile.write (mySpy)

myFile.close ()

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

Voici quelques autres vars d’environnement CGI utiles:

AUTH_TYPE

CONTENT_LENGTH

CONTENT_TYPE

GATEWAY_INTERFACE

PATH_INFO

PATH_TRANSLATED

CHAÎNE DE REQUÊTE

REMOTE_ADDR

REMOTE_Host

REMOTE_IDENT

REMOTE_USER

REQUEST_METHOD

SCRIPT_NAME

NOM DU SERVEUR

PORT DE SERVEUR

SERVER_PROTOCOL

SERVER_SOFTWARE

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

J'utilise ces méthodes sous Python 3 sous Windows Server avec CGI via MIIS.

J'espère que cela peut vous aider.

0
Al-Noor Ladhani

Je ne pouvais pas obtenir les autres réponses au travail, mais voici ce qui a fonctionné pour moi:

    url = os.environ['HTTP_Host']
    uri = os.environ['REQUEST_URI']
    return url + uri
0
Wikis