Flaskの開発サーバー(localhost)へアクセスできない場合の対処方法
2024年7月3日
こんにちは。
今回の記事では、Flaskの開発サーバー(localhost)へアクセスできない場合の対処方法について解説します。
Flaskの開発サーバーを起動すると、以下のように表示されます。
python app.py
* Serving Flask app 'flask_app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
この際、Webブラウザでアクセスしようとしても、接続が拒否されました。
ログには、以下のように404エラーが出力されていました。
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -
今回の記事では、このような不具合の対処方法について解説します。
localhostを指定すると接続できない
今回の不具合は、WebブラウザのURLが問題でした。
URLには、「http://localhost:5000」と入力していました。
URLを「http://127.0.0.1:5000」と指定すると接続できるようになりました。
MacOSの場合、AirPlayレシーバーというソフトウェアがlocalhostの5000番を使用しているため、他のアプリ(今回はFlask)では使用できなくなっています。
http://localhost:5000に接続するためには?
もし、http://localhost:5000に接続したい場合は、Airplayを無効にすれば良いのです。
「システム環境設定」 →「共有」 → 「Airplay レシーバー」のチェックを外します。
これで、localhost:5000でもアクセスできるようになります。
上記でも解決しない場合
上記でも解決しない場合、いくつかの原因が考えられます。
- localhostが名前解決できない
- ブラウザのキャッシュ
- セキュリティソフト
localhostが名前解決できない
localhostは通常、127.0.0.1に解決されるはずですが、システムやネットワークの設定によっては、これが正しく行われていない可能性があります。
例えば、hostsファイルにlocalhostのエントリーがない場合や、localhostが別のIPアドレスに解決されている場合です。
以下のコマンドを実行して、localhostが127.0.0.1で名前解決できるか確認してみてください。
nslookup localhost
コマンドを実行し、以下のように表示されれば問題ありません。Addressが127.0.0.1以外であればhostsファイルの設定を見直してください。
Non-authoritative answer:
Name: localhost
Address: 127.0.0.1
ブラウザのキャッシュ
ブラウザのキャッシュやプロキシ設定が原因でlocalhostへのアクセスが妨げられている可能性があります。
ブラウザのシークレットモードやプロキシの設定を外して確認してみましょう。
セキュリティソフト
ファイアウォールやセキュリティソフトがlocalhost
へのアクセスをブロックしている場合もあります。
セキュリティソフトをインストールしている場合は、一度OFFにして試してみてください。
参考記事
まとめ
今回の記事では、Flaskの開発サーバー(localhost)へアクセスできない場合の対処方法について解説しました。
不具合の対処にお役に立てれば幸いです。
ここまでお読みいただきありがとうございました。
Pythonの基礎から応用まで学べる
Python WebAcademy
Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。
Pythonの学習を始めるインフラの学習はInfraAcademy
おすすめの記事