PythonでPathやURLを取得する
sys.pathとpprintでモジュール検索パスを確認
import sys
import pprint
pprint.pprint(sys.path)
sys.pathでモジュール検索パスを確認
import sys
for path in sys.path:
print(path)
PythonパッケージディレクトリのPath
import site
print(site.getsitepackages())
モジュール・パッケージのパスを確認
例:Django
import django
print(django.__file__)
実行中ファイルのフルパス
print(__file__)
URLの取得
from urllib.parse import urlparse, urlunparse, urljoin, parse_qsl
import os
#SCHEME http or https
scheme = os.environ.get('REQUEST_SCHEME', 'http')
#ドメイン名
server_name = os.environ.get('SERVER_NAME', 'localhost')
#ドメイン名までのURL
base_url = urlunparse((scheme, server_name, '', '', '', ''))
# base_url = f"{scheme}://{server_name}" #←これでもいい
#ドメイン以下のURL
url_path = os.environ.get('REQUEST_URI', '/')
#カレントURL
current_url = urljoin(base_url, url_path)
#パラメーターをパース
parsed = urlparse(current_url)
params = dict(parse_qsl(parsed.query))
query = params.get('q', '')
page = params.get('page', '')
print(base_url)
print(url_path)
print(current_url)
print(parsed)
print(params)
print(f'検索語: {query}')
print(f'ページ番号: {page}')
#### レスポンス ####
https://example.com
/test/path.py?q=python&page=3
https://example.com/test/path.py?q=python&page=3
ParseResult(scheme='https', netloc='example.com', path='/test/path.py', params='', query='q=python&page=3', fragment='')
{'q': 'python', 'page': '3'}
検索語: python
ページ番号: 3