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}}

これで、先ほどと同じようにアクセスして、今度は現在の時刻が表示できれば完成です。

お手軽に使えそうですね。