flaskでhello worldするまでのメモです。
#python hello.pyでの実行で不具合
下記のコードが突然動かなくなりました。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello, World!"
if __name__ == '__main__':
#app.run(host='0.0.0.0',port=8000)
app.run(host='0.0.0.0')
#app.run()
実行コマンド
(pyb) $ python hello.py
いままで実行すると、ブラウザで見れていたのですが
突然、不具合を起こしました。
まだhelloworldとかコピペしかしてないのに…。
ググりながら、
0.0.0.0を127.0.0.1にしたり
ポートを8000にしましたが、
ダメでした。
#ただ実行はされているらしい
curlでhtmlの出力を確認できるらしく、
してみるとプログラムは実行されており出力はあるようでした。
(base) wsl_username@DESKTOP-N1RJB3Q:/mnt/c/Users/winUserName$ curl http://localhost:5000/
Hello, World!
ポートやアドレスの設定は詳しくないので
そこに異常があると先行きが怪しくなってくる…。
#python -m flask runで実行
マイクロソフトのサイトで確認したコマンド。
適当なディレクトリを作成し、
そのなかにhello.pyを移動させ
名前をapp.pyに変更します。
example(directory)
|
|___app.py
そのうえで、下記コマンドで実行。
(pyb) $ python3 -m flask run
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [15/May/2021 21:35:05] "GET / HTTP/1.1" 200 -
きちんと表示されました。
ですが突然、python ファイル名.py
でダメになったのかは不明です。
#FLASK_APP=hello.py FLASK_ENV=development flask runで実行できる
環境変数FLASK_APPにファイル名を指定することで
解決しました。
$ FLASK_APP=hello.py FLASK_ENV=development flask run
* Serving Flask app "hello.py" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
* Debugger is active!
* Debugger PIN: 169-317-205
127.0.0.1 - - [16/May/2021 12:40:40] "GET / HTTP/1.1" 200 -
参考:
https://qiita.com/miroha-eng/items/cf446a3a012c32a6d03c
マイクロソフト
https://docs.microsoft.com/ja-jp/windows/python/web-frameworks