Подтвердить что ты не робот

Получить текущий URL-адрес в Python

Как получить текущий URL-адрес с Python,

Мне нужно захватить текущий URL, чтобы я мог проверить его на строки запроса, например

requested_url = "URL_HERE"

url = urlparse(requested_url)

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

также работает в Google App Engine

4b9b3361

Ответ 1

Попробуйте следующее:

self.request.url

Кроме того, если вам просто нужен запрос, это будет работать:

self.request.query_string

И, наконец, если вы знаете переменную querystring, которую вы ищете, вы можете сделать это:

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

Ответ 2

Для любого, кто находит это через google,

Я понял,

вы можете получить строки запроса в текущем запросе, используя:

url_get = self.request.GET

который является UnicodeMultiDict ваших строк запроса!

Ответ 3

Попробуйте это

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

Ответ 4

Я не мог получить другие ответы на работу, но вот что сработало для меня:

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

Ответ 5

Вот как я собираю в Python 3 из CGI (A) URL, (B) GET параметров и (C) POST данных:

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

импортировать sys, 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')

ЗАПИСЬ ПОЧТОВЫХ ДАННЫХ

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

if (myTotalBytesStr == Нет):

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

еще:

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

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

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

Написать RAW в файл

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

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

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

Вы должны определить свой собственный myPath здесь

myFilename = "spy.txt"

myFilePath = myPath + "\" + myFilename

myFile = open (myFilePath, "w")

myFile.write(mySpy)

myFile.close()

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

Вот некоторые другие полезные переменные среды CGI:

AUTH_TYPE

CONTENT_LENGTH

ТИП СОДЕРЖИМОГО

GATEWAY_INTERFACE

PATH_INFO

PATH_TRANSLATED

СТРОКА ЗАПРОСА

REMOTE_ADDR

УДАЛЕННЫЙ УЗЕЛ

REMOTE_IDENT

REMOTE_USER

REQUEST_METHOD

SCRIPT_NAME

НАЗВАНИЕ СЕРВЕРА

ПОРТ СЕРВЕРА

SERVER_PROTOCOL

SERVER_SOFTWARE

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

Я использую эти методы запуска Python 3 на Windows Server с CGI через MIIS.

Надеюсь, это поможет вам.

Ответ 6

Вы можете использовать ОС

    import os
    url = os.environ
    print(url)

при этом вы увидите все данные, которые предоставляет os.environ. Похоже, вам нужно "QUERY_STRING". Как и любой объект JSON, вы можете получить такие данные.

    import os
    url = os.environ['QUERY_STRING']
    print(url)