Back to Blog

Flaskの開発サーバー(localhost)へアクセスできない場合の対処方法

flask

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 レシーバー」のチェックを外します。

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の学習を始める