13.小紅編寫基于Flask Web框架的Python校園空氣質(zhì)量指數(shù)(AQI)監(jiān)測系統(tǒng),實現(xiàn)監(jiān)測校園各采樣點AQI數(shù)據(jù)。校園的每個采樣點都使用相關(guān)傳感器采集PM2.5、PM1.0和PM10的值,然后計算當天的AQI。
(1)數(shù)據(jù)采集與傳輸。學(xué)校操場是4號監(jiān)測點,每分鐘采集一次PM2.5、PM1.0和PM10的值。如圖所示為其中某一天的部分采集數(shù)據(jù)。
①AQI需先統(tǒng)計全天PM2.5采樣數(shù)據(jù)的平均值,然后根據(jù)平均值計算獲得。根據(jù)上圖所示的數(shù)據(jù),PM2.5前3分鐘的平均值為
(填數(shù)值)。
②小紅編寫了數(shù)據(jù)處理子程序,實現(xiàn)計算每天的數(shù)據(jù)采集文件中的PM2.5的平均值和AQI,程序段如下:
f=open (“pm_d.txt”)#打開文件
def finds (c,st):#查找字符st在字符串c中的位置
for i in range (len (c) ):
if
a:
return i
data=[];sum=0
for line in f.readline
:#按行讀取文件
if“PM2.5”in line:
w=finds (line,“:”)
d=
bdata=data+[d]#將獲取的PM2.5數(shù)據(jù)保存到列表中
sum=sum+d
ave=sum//len (data)#計算PM2.5的平均值
#計算AQI,代碼略
f.close ( ?。?br />則程序中畫線處a、b應(yīng)填入的代碼為:a
b
.
(2)數(shù)據(jù)存儲與呈現(xiàn)。該系統(tǒng)的主程序主要實現(xiàn):用數(shù)據(jù)庫存儲每天各監(jiān)測點上傳的AQI數(shù)值,訪問該系統(tǒng)的路由等功能。訪問該系統(tǒng)的URL為http://10.1.10.1:88/,并使用變量s傳遞查詢結(jié)果數(shù)據(jù),用于“vews.html”網(wǎng)頁文件顯示。實現(xiàn)主程序的部分代碼如下:
from flask import Flask,render_template,request
app=Flask (_name_)
#數(shù)據(jù)處理子程序上傳的AQI數(shù)據(jù),并存儲到數(shù)據(jù)庫data.db的路由代碼略
a#主頁面路由命令
def index ( ?。?br />db=sqlite3.connect(“data.db”)
#游標變量cur連接等參數(shù),代碼略
sql=“SELECT*FROM pm_b WHERE id=4”
cur.execute (sql)#查詢4號監(jiān)測點AQI數(shù)據(jù)
data=cur.fetchall ( ?。?br />#數(shù)據(jù)庫執(zhí)行和關(guān)閉,代碼略
return data#將data數(shù)據(jù)傳遞給參數(shù)變量s用于顯示在網(wǎng)頁中
if_name_==“_main_”:
app.run(
b)#(選填)
請回答下列問題:
①分析程序可知,存儲每天的AQI的數(shù)據(jù)表名為
。
②為實現(xiàn)上述功能,程序中畫線a處應(yīng)填入代碼為
。
③為實現(xiàn)上述功能,程序中畫線b處應(yīng)填入的代碼為
A.host=“10.1.10.1:88”,port=88
B.host=“10.1.10.1”,port=88
C.host=“http://10.1.10.1”,port=88
D.host=http://10.1.10.1,port=8000
④程序中加框處的代碼有誤,則能正確實現(xiàn)系統(tǒng)功能的代碼是
。
A.return s
B.return render_template(“vews.html”,s)
C.return render_template(“vews.html”,data)
D.return render_template(“vews.html”,s=data)