Flask アプリケーションをネットワーク上で表示するように設定する方法
Flask アプリケーションを新規作成すると、開発サーバーが組み込まれます。これは、エラーの確認や変更時の自動リロードに便利です。ただし、このサーバーを使用してアプリを起動すると、ローカルホスト (127.0.0.1) のみをリッスンするため、自分のコンピューターからしかアクセスできません。つまり、同じネットワーク上の他のデバイスからこのアプリケーションにアクセスすることはできません。
そこで質問ですが、これを変更して、コンピューターの IP アドレスを使用して、同じネットワーク上の他のデバイスからアプリケーションにアクセスできるようにすることはできますか? 答えは「はい」です。このチュートリアルは、Flask アプリケーションをネットワーク上でアクセス可能に構成するのに役立ちます。
Flask でホスト IP アドレスを変更する
デフォルトでは、セキュリティ上の理由から、Flask の開発サーバーはコンピューター (localhost) でのみ動作するように設定されています。公式の Flask ドキュメントには次のように記載されています。
ネットワーク上の他のデバイスを信頼している場合、またはデバッガーを無効にしている場合は、これを変更できます。
ホスト変数は、サーバーがリッスンする IP アドレスを決定します。通常、ホストは 127.0.0.1 または localhost に設定されます。ネットワーク上でアプリにアクセスできるようにするには、これを 0.0.0.0 に変更できます。ホストを 0.0.0.0 に設定すると、オペレーティング システムは利用可能なすべてのパブリック IP アドレスをリッスンするように指示されます。
これを行うには 2 つの方法があります。どちらかを選択できます。
方法1: Flaskコマンドを使用する
flask runコマンドでアプリを起動すると、 --host
フラグは次のようになります:
flask run --host=0.0.0.0
次に、同じネットワーク内の別のデバイスで Web ブラウザーを開き、次のようにコンピューターの IPv4 アドレスとポート番号を入力します。
- http://[your-ipv4-address]:5000
これにより、別のデバイスからアプリを表示できるようになります。
方法 2: run() メソッドを使用する
Flaskアプリケーションを次のように起動すると python app.py
、変更することができます app.run()
含める方法 host="0.0.0.0"
パラメータは次のようになります:
if __name__ == '__main__':
# run app in debug mode on port 5000
app.run(debug=True, port=5000, host="0.0.0.0")
次に、同じネットワーク内の別のデバイスで Web ブラウザーを開き、次のようにコンピューターの IPv4 アドレスとポート番号を入力します。
- http://[your-ipv4-address]:5000
これで、ネットワーク上のどのデバイスからでもアプリにアクセスできるようになります。
結論
これらの簡単な手順に従うことで、Flaskアプリケーションをローカルネットワーク上の他のデバイスからアクセスできるようになります。これは、さまざまなデバイスでアプリをテストおよびデモンストレーションする場合に特に便利です。flask runコマンドを使用するか、 app.run()
メソッド、ホストを設定する 0.0.0.0
これにより、アプリケーションは、パブリック IP アドレスへのアクセスも許可するシステムに接続されたすべてのネットワーク インターフェイスをリッスンできるようになります。他のデバイスからアプリケーションにアクセスするには、コンピューターの IPv4 アドレスとポート番号を使用することを忘れないでください。
このチュートリアルが、ネットワーク経由で Flask アプリケーションを許可する際に役立つことを願っています。
Hope this help!