2010-05-04 23 views
23

Wie würde ich die aktuelle URL mit Python erhalten,Holen Sie sich aktuelle URL in Python

Ich brauche die aktuelle URL zu ergreifen, so kann ich es prüfen für Query-Strings zB

requested_url = "URL_HERE" 

url = urlparse(requested_url) 

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

auch dies läuft in Google App Engine

Antwort

51

Versuchen Sie folgendes:

Auch
self.request.url 

, wenn Sie nur die Abfragezeichenfolgeflag benötigen, dies funktionieren wird:

self.request.query_string 

Und schließlich, wenn Sie die Abfragezeichenfolgeflag Variable kennen, die Sie suchen, Sie können dies tun:

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

self.request.query_string funktioniert super danke – Alex

0

Versuchen Sie, diese

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

dies keine Abfrage-Strings zu ignorieren scheint, da es nur ist die Host-URL Grabbing: parseResult (scheme = 'localhost', netloc = '', pfad = '8080', params = '', query = '', fragment = '') – Alex

3

Für alle diese über google zu finden,

ich es herausgefunden,

mit

können Sie die Abfrage-Strings auf Ihrem aktuellen Anfrage erhalten:

url_get = self.request.GET 

die eine UnicodeMultiDict Ihrer Query-Strings ist!

+0

Ja, im Allgemeinen möchten Sie die Tools verwenden von Ihrem Framework bereitgestellt und URLs nicht manuell parsen; Das ist ein gelöstes Problem. – geoffspear

0

Ich konnte nicht die anderen Antworten bekommen zu arbeiten, aber hier ist das, was für mich gearbeitet:

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