Python フレームワーク Flask
Raspberry Pi自体をWebサーバーとして仕立てることができます。webサーバはなじみのapacheなども使えますが、
今回はPython軽量フレームワーク Flaskをインストールして使えるようにセットアップします。
Flaskは「マイクロフレームワーク」と呼ばれており、Flask自身が備えている機能自体は少なく必要に応じて利用者がライブラリを追加したり、機能拡張したりするものです。
Flaskのインストール
まずは、pythonのライブラリ管理パッケージ pipをインストールします。
次に flaskをインストールを行います。
sudo apt-get install python-pip
sudo pip install flask
サンプルの作成および動作確認
Flaskがインストールできたら、まずサンプルを作成して動作を確認します。以下のpythonコードを適当なフォルダに作成します。
from flask import Flask
app = Flask( __name__ )
@app.route('/')
def hello_world():
return 'Hello World';
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
作成できたら、以下のコマンドを入力し実行します。
python hello_flask.py
ブラウザから アクセスしてみて、helloworldと表示されればOKです。
テンプレートを作ってみる
ここまで確認できたらテンプレート機能まで確認しましょう
次のpythonコードを書きます。タイトルの現在時刻をpythonコードで取得して、htmlのレンダリング用にデータを作成して
表示すべきhtmlページをリターンするように感じになります。
from flask import Flask, render_template
import datetime app = Flask(__name__)
@app.route("/")
def hello():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = { 'title:' : 'Hello', 'time' : timeString }
return render_template('main.html',**templateData )
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
次にレンダリング用のmain.htmlを用意します。pythonから渡されるデータは{{}} で囲って記述します。
Hello World!!
ただいま : {{time}}
これで、先ほどと同じようにアクセスして、今度は現在の時刻が表示できれば完成です。
お手軽に使えそうですね。