flask【request】の中身
【request】の中身
PHPでは$_SERVER
でいろいろな情報が取得出来ましたが、flask(python)ではどんな情報が取得できるのか?
リクエストプロパティと公式の日本語翻訳、サーバで実行した結果を記載しています。
結果は https://outpust.jp/blog/ のページで稼働させた物
サーバ環境は VPS
+Docker
リバースプロキシあり( 詳細は以下ページを参照ください。)
request.base_url
📝同様urlですが、クエリ文字列はありません。
これは、Noneエンドポイントがブループリントの一部でない場合、または URL マッチングが失敗したか、まだ実行されていない場合です。
これは、ブループリントが作成された名前と必ずしも一致しません。ネストされているか、別の名前で登録されている可能性があります。
http://outpust.jp/blog/
request.blueprint
📝現在のブループリントの登録名。
これは、None
エンドポイントがブループリントの一部でない場合、または URL マッチングが失敗したか、まだ実行されていない場合です。
これは、ブループリントが作成された名前と必ずしも一致しません。ネストされているか、別の名前で登録されている可能性があります。
z_blog
request.endpoint
📝リクエスト URL に一致したエンドポイント。None
これは、マッチングに失敗した場合、またはまだ実行されていない場合です。
これを と組み合わせて使用すると、view_args
同じ URL または変更された URL を再構築できます。
z_blog.index
request.environ
📝WSGI サーバーからの HTTP ヘッダーと情報を含む WSGI 環境。
{'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
'HTTP_ACCEPT_LANGUAGE': 'ja,en-US;q=0.9,en;q=0.8',
'HTTP_CACHE_CONTROL': 'max-age=0',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': '_ga=GA1.1.177825233.1676778235; '
'_ga_SP6QDYPSQ7=GS1.1.1677408048.21.1.1677414878.0.0.0; '
'remember_token=1|4ca45f295fb8213a2d69272d12cedf81fb70bc48a9a3e33efe04b510c9627f057f52230c7c26d1b276926588d862be04129001078d8b74a6ba5952527023ee68; '
'session=.eJw9jUsOwjAQQ-8y6y7S0o_ay4wmiUsjQguTREgg7k4QEks_2c8v4lWRNlpWiQkNcUlQDp4Waqkhl3TlfFywV2DRGRg39i3E-sHZrpfRnQZjxtlNq5dZ-tb4oe42SeyOWK47bxAPpSVrqf6QGKqcsPv_p0oGx3ANGZ7dnmkxFeJekDLbWHDT8KX0rOk4V30WG8F6PH716f0B3NFD3g.ZAHjug.uidmKngIX9GyXpXs_Ri3SLhhcWk; '
'_ga_SP6QDYPSQ7=GS1.1.1677845368.36.1.1677845629.0.0.0',
'HTTP_HOST': 'outpust.jp',
'HTTP_REFERER': 'https://outpust.jp/blog/3b66f4e4-7448-468d-afb6-56767fc05a3c',
'HTTP_SEC_CH_UA': '"Chromium";v="110", "Not A(Brand";v="24", "Google '
'Chrome";v="110"',
'HTTP_SEC_CH_UA_MOBILE': '?0',
'HTTP_SEC_CH_UA_PLATFORM': '"Windows"',
'HTTP_SEC_FETCH_DEST': 'document',
'HTTP_SEC_FETCH_MODE': 'navigate',
'HTTP_SEC_FETCH_SITE': 'same-origin',
'HTTP_SEC_FETCH_USER': '?1',
'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 '
'Safari/537.36',
'HTTP_X_FORWARDED_FOR': '153.232.13.43, 153.232.13.43',
'HTTP_X_FORWARDED_HOST': 'outpust.jp',
'HTTP_X_FORWARDED_PROTO': 'http',
'HTTP_X_FORWARDED_SERVER': 'outpust.jp',
'HTTP_X_REAL_IP': '153.232.13.43',
'PATH_INFO': '/blog/',
'QUERY_STRING': '',
'RAW_URI': '/blog/',
'REMOTE_ADDR': '172.18.0.4',
'REMOTE_PORT': '47186',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': '',
'SERVER_NAME': '0.0.0.0',
'SERVER_PORT': '5000',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gunicorn/20.1.0',
'gunicorn.socket': <socket.socket fd=9, family=2, type=1, proto=0, laddr=('172.18.0.3', 5000), raddr=('172.18.0.4', 47186)>,
'werkzeug.request': <Request 'http://outpust.jp/blog/' [GET]>,
'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fd1839bdcf0>,
'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
'wsgi.input': <gunicorn.http.body.Body object at 0x7fd1839eda50>,
'wsgi.input_terminated': True,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
request.host
📝要求が行われたホスト名。非標準の場合はポートを含みます。で検証済みtrusted_hosts
。
outpust.jp
request.host_url
📝リクエスト URL スキームとホストのみ。
http://outpust.jp/
request.referrer
📝Referer[sic] request-header フィールドにより、クライアントは、サーバーの利益のために、Request-URI が取得されたリソースのアドレス (URI) を指定できます (ヘッダー フィールドのつづりが間違っていますが、「referrer」)。
https://outpust.jp/blog/3b66f4e4-7448-468d-afb6-56767fc05a3c
request.remote_addr
📝リクエストを送信するクライアントのアドレス。
172.18.0.4
※リバースプロキシの場合は正常に取得できない為、以下コードで取得(※サーバ環境により異なる)
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
request.root_url
📝リクエスト URL スキーム、ホスト、およびルート パス。これは、アプリケーションがアクセスされるルートです。
http://outpust.jp/
request.url
📝スキーム、ホスト、ルート パス、パス、クエリ文字列を含む完全なリクエスト URL。
http://outpust.jp/blog/
request.url_root
📝リクエスト URL スキーム、ホスト、およびルート パス。これは、アプリケーションがアクセスされるルートです。
http://outpust.jp/



