PythonのWebフレームワークについて、前回は「bottle」でしたが、今回は「Flask」を利用してみます。
FlaskはAnacondaに同梱されているので、すぐに使用できます。
※もしFlaskが正しく動作しない場合は、下記のコマンドでインストールしてください。
1 |
pip install Flask |
Flaskの公式サイトの「Flask is Fun」より、Pythonファイルを作成します。(ここでは、ファイル名をhello.pyとします。)
1 2 3 4 5 6 |
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" |
次のコマンドで、スクリプトファイルの割り当てとWebサーバの起動を行います。
1 2 |
set FLASK_APP=hello.py flask run |
ブラウザーで「http://localhost:5000/」と入力すると・・・
Hello world!が表示できました!
コマンド「python hello.py」でWebサーバを起動したい場合は、hello.pyを以下のように変更してから実行します。(8,9行目を追加)
1 2 3 4 5 6 7 8 9 |
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(debug=True) |
前回の「bottle」のように、URLよりパラメータを渡したい場合、以下のようになります。(importに”render_template”と、8~10行を追加)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from flask import Flask, render_template app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" @app.route("/hello/<name>") def hello_name(name): return render_template('index.html', name=name) if __name__ == "__main__": app.run(debug=True) |
※render_templateを使用する際は、pythonファイルと同階層にtemplatesディレクトリを作成し、テンプレートファイルを配置します。
1 2 3 4 |
flask ├── hello.py └── templates └── index.html |
1 |
<b>Hello {{name}}</b>! |
ブラウザーで「http://localhost:5000/hello/world」と入力すると・・・
正しく表示されました。
「Flask」と「Bottle」を比べてみると、オブジェクトを作成[app = Flask(__name__)]をするしないなど、細かい違いがあるので、またの機会に探してみたいです。
以上です。