Pythonで現在のURLを取得するにはどうすればよいですか。
現在の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で実行されています
これを試して:
self.request.url
また、クエリ文字列だけが必要な場合、これは機能します。
self.request.query_string
そして、最後に、探しているクエリ文字列変数がわかっている場合は、これを行うことができます。
self.request.get("name-of-querystring-variable")
グーグル経由でこれを見つけた人のために、
私はそれを考え出した、
次のコマンドを使用して、現在のリクエストのクエリ文字列を取得できます。
url_get = self.request.GET
これはクエリ文字列のUnicodeMultiDictです!
これを試して
import os
url = os.environ['HTTP_Host']
これは、Python 3 in CGI(A)URL、(B)GETパラメータ、および(C)POST data:
================================================== =====
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 == None):
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")
mySpy = "myURLSelf:[" + str(myURLSelf)+ "]\n"
mySpy = mySpy + "myQuerySelf:[" + str(myQuerySelf)+ "]\n"
mySpy = mySpy + "myPostData:[" + str(myPostData)+ "]\n"
myFilename = "spy.txt"
myFilePath = myPath + "\" + myFilename
myFile = open(myFilePath、 "w")
myFile.write(mySpy)
myFile.close()
================================================== =====
その他の便利なCGI環境変数は次のとおりです。
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
PATH_INFO
PATH_TRANSLATED
クエリ文字列
REMOTE_ADDR
リモートホスト
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
サーバー名
サーバポート
SERVER_PROTOCOL
SERVER_SOFTWARE
============================================
私は、MIISを介してCGIがインストールされたWindows ServerでPython 3を実行するこれらのメソッドを使用しています。
これがあなたに役立つことを願っています。
私は他の答えを出すことができませんでしたが、これが私のために働いたものです:
url = os.environ['HTTP_Host']
uri = os.environ['REQUEST_URI']
return url + uri
リクエストモジュールには「url」属性があり、urlが変更されています。
これを試してください:
import requests
current_url=requests.get("some url").url
print(current_url)
あなたはOSを使うことができます
import os
url = os.environ
print(url)
これで、os.environが提供するすべてのデータが表示されます。 「QUERY_STRING」が必要なようです。他のJSONオブジェクトと同様に、このようなデータを取得できます。
import os
url = os.environ['QUERY_STRING']
print(url)