flask【request】の中身

Flask

【request】の中身

PHPでは$_SERVERでいろいろな情報が取得出来ましたが、flask(python)ではどんな情報が取得できるのか?

Flask API(flask.Request)

リクエストプロパティと公式の日本語翻訳、サーバで実行した結果を記載しています。

結果は https://outpust.jp/blog/ のページで稼働させた物

サーバ環境は VPSDockerリバースプロキシあり( 詳細は以下ページを参照ください。)

https://outpust.jp/blog/c6953b19-652d-415c-939e-4ee5ae0da752

request.base_url

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.base_url#flask.Request.base_url

📝同様urlですが、クエリ文字列はありません。
これは、Noneエンドポイントがブループリントの一部でない場合、または URL マッチングが失敗したか、まだ実行されていない場合です。
これは、ブループリントが作成された名前と必ずしも一致しません。ネストされているか、別の名前で登録されている可能性があります。

http://outpust.jp/blog/

request.blueprint

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.blueprint#flask.Request.blueprint

📝現在のブループリントの登録名。
これは、Noneエンドポイントがブループリントの一部でない場合、または URL マッチングが失敗したか、まだ実行されていない場合です。
これは、ブループリントが作成された名前と必ずしも一致しません。ネストされているか、別の名前で登録されている可能性があります。

z_blog

request.endpoint

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.endpoint#flask.Request.endpoint

📝リクエスト URL に一致したエンドポイント。
Noneこれは、マッチングに失敗した場合、またはまだ実行されていない場合です。
これを と組み合わせて使用すると、view_args同じ URL または変更された URL を再構築できます。

z_blog.index

request.environ

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.environ#flask.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

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.host#flask.Request.host

📝要求が行われたホスト名。非標準の場合はポートを含みます。で検証済みtrusted_hosts

outpust.jp

request.host_url

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.host#flask.Request.host_url

📝リクエスト URL スキームとホストのみ。

http://outpust.jp/

request.referrer

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.referrer#flask.Request.referrer

📝Referer[sic] request-header フィールドにより、クライアントは、サーバーの利益のために、Request-URI が取得されたリソースのアドレス (URI) を指定できます (ヘッダー フィールドのつづりが間違っていますが、「referrer」)。

https://outpust.jp/blog/3b66f4e4-7448-468d-afb6-56767fc05a3c

request.remote_addr

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.remote_addr#flask.Request.remote_addr

📝リクエストを送信するクライアントのアドレス。

172.18.0.4

※リバースプロキシの場合は正常に取得できない為、以下コードで取得(※サーバ環境により異なる)

request.environ.get('HTTP_X_REAL_IP', request.remote_addr)

request.root_url

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.root_url#flask.Request.root_url

📝リクエスト URL スキーム、ホスト、およびルート パス。これは、アプリケーションがアクセスされるルートです。

http://outpust.jp/

request.url

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.url#flask.Request.url

📝スキーム、ホスト、ルート パス、パス、クエリ文字列を含む完全なリクエスト URL。

http://outpust.jp/blog/

request.url_root

https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=request.url_root#flask.Request.root_url

📝リクエスト URL スキーム、ホスト、およびルート パス。これは、アプリケーションがアクセスされるルートです。

http://outpust.jp/
プロフィール背景画像 プロフィール画像
名前:田中寛之
今まで約20年間、出版社、マスコミ、化粧品会社、システム会社・病院・クリニックにてシステムエンジニアとして勤務。現在、個人事業主「ONLINE-WORLD」として活動し、42歳からPythonを始めました!
プロフィール背景画像 プロフィール画像
名前:田中寛之
今まで約20年間、出版社、マスコミ、化粧品会社、システム会社・病院・クリニックにてシステムエンジニアとして勤務。現在、個人事業主「ONLINE-WORLD」として活動し、42歳からPythonを始めました!