ちばのてっく

積極的にアウトプット

flask runではなく、python ファイル名で実行すると404エラー

発生した問題

とほほのFlask入門チュートリアルを参考に、if __name__ほげほげブロックをapp = Flask(__name__)の直後に追記し、

from flask import Flask

app = Flask(__name__)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

pythonコマンドで実行した。(flask runコマンドではなく)

python hello.py

正常にFlaskが動作していることをターミナルで確認した後に、http://127.0.0.1:5000へブラウザからアクセスすると、404エラーが出力された。

127.0.0.1 - - [13/Mar/2024 21:33:12] "GET / HTTP/1.1" 404 -

解決方法

if __name__ほげほげブロックを、@app.route("/")ブロックの前ではなく、後に追記することで解決した。

OK

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello world!</p>"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

NG

from flask import Flask

app = Flask(__name__)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

@app.route("/")
def hello_world():
    return "<p>Hello world!</p>"