Python - flask - Hello, World!


クラウディア 


1. 概要
2. ソース
3. 実行
4. 失敗
5. 警告
6. 参考サイト

1. 概要

 何はともあれ、「Hello, World!」。

2. ソース

 下記のソースを記述します。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
  return "Hello, World!"

if __name__ == "__main__":
  app.run(host='0.0.0.0')
 5行目の、「@app.route('/')」は、ルーティングで、これは、ドキュメントルートを示しています。  「('/')」の下に、サブルートを記述することができます。  10行目の、「app.run(host='0.0.0.0')」の「host=''」は省略することもできますが、省略すると「127.0.0.1」になって、外部からアクセスできなくなります。

3. 実行

 実行します。  実行すると、下記が表示されます。

 * Serving Flask app '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 all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.x.x:5000
Press CTRL+C to quit
 ここで、「192.168.x.x」は、実行時のマシンのローカル「IP」アドレスです。  ブラウザで、「http://192.168.x.x:5000」にアクセスすると、下記のように表示されます。

 そのときに、ターミナルには、下記のように表示されます。


192.168.x.x - - [31/Mar/2026 16:22:16] "GET / HTTP/1.1" 200 -
 通常の「http」のログですわな。  終わるときには、メッセージ通り Ctrl+C で、とめます。

4. 失敗

 当初、うっかりソース名を「flask.py」にしちゃったら、実行時に。

Traceback (most recent call last):
  File "/path/flask.py", line 1, in <module>
    from flask import Flask
  File "/path/flask.py", line 1, in <module>
    from flask import Flask
ImportError: cannot import name 'Flask' from partially initialized module 'flask' (most likely due to a circular import) (/path/flask.py)
 てな、エラーになっちゃってあせりました。  自分のファイルが Flask 本体と名前衝突していたのでした。  「Python」の「import」は次の順で探します。

カレントディレクトリ
site-packages
 「/usr/local/lib/.../site-packages/flask」を見つける前に、「./flask.py」を見つけてしまっていたのでした。  前にもやった失敗だわ。

5. 警告

 実行時の。

WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 のメッセージが気になったので、調べてみたら。
Flask に組み込まれている開発用サーバ(Werkzeugの簡易サーバ)を本番で使うなという意味。
 だそうで。  「app.run()」で起動しているのは、デバッグ用、シングルプロセス、シンプルな「HTTP」サーバであって、本番運用を前提としていません。  下記のような理由で。 ❌ セキュリティが弱い デバッグモードでコード実行可能になる 攻撃に対する防御機能がない ❌ 性能が低い 同時接続に弱い スケーリング不可 ❌ 安定性が低い 落ちても自動復旧しない 長時間運用に不向き  本番環境に使っちゃダメなので。  本番では「WSGIサーバを使え」とのことです。  「WSGI」とは、「Python」ウェブアプリとウェブサーバの接続仕様だそうであります。

6. 参考サイト

 本ページは、「ChatGPT」軍曹を参考にさせていただきました。

TikTok Shop 【リピート用プログラム】
AbemaTV 無料体験