5.Flask架設Server

http://flask.pocoo.org/

關於Flask的原始資料請看

http://flask.pocoo.org/

Flask是個極輕量的Webserver架站模板,可以輕易的在樹莓派Raspberry Pi中運行,

若想要使用使用企業級的架站伺服器軟體,市佔率最高的Apache可能會更適合你,但我用Flask來架站的目的是要蒐集同網域下感測器節點的資料,並利用電腦強大的運算效能(相比esp8266或Arduino來說),對傳來的數據繪圖或作演算,並且運算結果可以直接連網可見,即使是智慧型手機、平板,也可以輕鬆連線觀看結果,不須額外設定。

ESP8266為什麼不適合拿來當Webserver? 因為除了同時連線數的限制之外,接收資料的頻率也無法相當頻繁,若把它當作連線者還算稱職喔!

from flask import Flask

from flask import Markup

from flask import Flask

from flask import render_template

app = Flask(__name__)

n=0

x=[]

y=[]

#此處頁面是在 http:/localhost:8080/esp8266_1/資料

@app.route('/esp8266_1/<int:data>') #傳來的資料是整數int類型,存成變數data

def cmd(data): #如果要抓取從網址列送出的值,()內就需要加上變數data

global n,x,y

n=n+1

x.append(n)

y.append(data)

if n>50 :

x.pop(0)

y.pop(0)

print(data)

return 'User %s' % data

#此處頁面是在 http:/localhost:8080/

@app.route('/')

def chart():

return render_template('chart.html', data_x=x, data_y=y)

#上面這一行是傳回 chart.html這個網頁,網頁標籤值data_x設為x ; data_y設為y

if __name__ == "__main__":

app.run(host='0.0.0.0', port=8080) #設定網頁port是8080