前提条件
- Windows10
- Python 3.9
環境構築
-
仮想環境作成
python -m venv venv
-
仮想環境に入る
./venv/Scripts/activate
-
Flask パッケージをインストール
pip install flask
シンプルなサーバーを実装
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello, World'
実行
flask run
これだけでWebサーバーが起動できました。
ブラウザで http://127.0.0.1:5000/ を開いてみてください。「Index Page」が表示されるはずです。
http://127.0.0.1:5000/helloを開くと「Hello, World」が表示されます。
ファイル名は app.py にしておくと楽です。
もしhello.pyとしたい場合は環境変数にhello
をセットしてから起動する必要があり
少々手間です。
set FLASK_APP=hello # CMD の場合
# $env:FLASK_APP = "hello" # Powershell の場合
flask run
POSTリクエストの実装
この短いコードだけで以下の2つのエンドポイントを用意することができました。
/
hello
POSTリクエストはどう定義すればよいのでしょう?
⇒ @app.route()
デコレータにmethod
引数を渡せばOKです。
以下のような感じになります。
from flask import request
@app.route('/login', methods=['GET', 'POST']) # "有効にするメソッドを指定"
def login():
if request.method == 'POST':
return do_the_login() # ログイン処理を実行
else:
return show_the_login_form() # ログイン画面を表示させる
これでGET or POSTリクエストを受け取れる/login
エンドポイントが作成できました。