FlaskはPythonで提供されているフレームワークで、利用することでPythonをつかったWEBアプリケーションを簡単に作成することができます
Flask利用のためにはインストールの必要があります。
Windows環境であればpipコマンドでインストールできます
pip install Flask
Flaskを実行するためのフォルダを作成します。任意の場所に任意の名前で、Flaskプロジェクトのためのフォルダを作成してください
Flaskの最小限の実行サンプルとして、以下のコードがあれば実行できます
指定したページにアクセスすると"Hello"と表示するだけのプログラムです
from flask import Flask
app = Flask(__name__) # Flaskのインスタンスを変数appに代入
@app.route('/') # ルートにアクセスしたときにこの関数を実行する、関数内で文字列"Hello"を出力
def func():
return "Hello"
if __name__ == '__main__':
app.run(host='localhost', port=8000) # ホスト名"localhost"、ポート8000でサーバーを起動する
上のコードをapp.pyなど適当なファイル名でFlask実行用のフォルダに保存し、実行する
http://localhost:8000にアクセスしてHelloと出れば成功です
@app.routeの部分ではどのURLを受けたときに対象の関数を呼び出すかを指定しています。上の実行サンプルに関数を追加してみましょう
@app.route('/call')
def func2():
return "call"
こちらの関数を追加して、http://localhost:8000/callにアクセスすれば、今度は画面に"call"と表示されるはずです
また、HTTPメソッドを指定して特定のHTTPメソッドのみ受け付けることも可能です
@app.route('/call', methods=['GET', 'POST'])
このように記載することで、上の例であればGETかPOSTのリクエストのみ受け付けます
今までの例では、リクエストに対して文字列をreturnするだけでした。
しかしFlaskでは、htmlを用意してそれを返却、ブラウザに表示させることが可能です
まず、Flaskのフォルダ内を以下のようなフォルダとファイル配置にしてください。後ろに/がついているものはフォルダです
Flask用フォルダ/
|__app.py
|__templates/
|__index.html
構成が完了したなら、各ファイルを以下のような内容にします
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def func():
return render_template('index.html') # HTMLファイルの呼び出し
if __name__ == '__main__':
app.run(host='localhost', port=8000)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Welcome index page!
</body>
</html>
完了したら、app.pyを実行後http://localhost:8000にアクセスすることで、index.htmlが表示されます
render_templateを利用すると、実行ファイルと同一フォルダ内に存在するtemplateフォルダの配下に存在するファイルから、htmlを呼び出して表示してくれます