第9章 信息系統(tǒng)的搭建實(shí)例(含F(xiàn)lask代碼詳解)高考信息技術(shù)二輪復(fù)習(xí)知識(shí)點(diǎn)梳理_第1頁
第9章 信息系統(tǒng)的搭建實(shí)例(含F(xiàn)lask代碼詳解)高考信息技術(shù)二輪復(fù)習(xí)知識(shí)點(diǎn)梳理_第2頁
第9章 信息系統(tǒng)的搭建實(shí)例(含F(xiàn)lask代碼詳解)高考信息技術(shù)二輪復(fù)習(xí)知識(shí)點(diǎn)梳理_第3頁
第9章 信息系統(tǒng)的搭建實(shí)例(含F(xiàn)lask代碼詳解)高考信息技術(shù)二輪復(fù)習(xí)知識(shí)點(diǎn)梳理_第4頁
第9章 信息系統(tǒng)的搭建實(shí)例(含F(xiàn)lask代碼詳解)高考信息技術(shù)二輪復(fù)習(xí)知識(shí)點(diǎn)梳理_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第九章信息系統(tǒng)的搭建實(shí)例1.信息系統(tǒng)搭建的前期準(zhǔn)備。(1)需求分析:包括目標(biāo)期待、功能需求、性能需求、環(huán)境資源需求、用戶界面需求、可拓展性需求。(2)可行性分析:主要從技術(shù)、經(jīng)濟(jì)、社會(huì)意義等方面分析系統(tǒng)的可行性。(3)開發(fā)模式選擇:搭建系統(tǒng)一般可選擇B/S或C/S兩種模式中的一種(4)概要設(shè)計(jì):包括模塊設(shè)計(jì)、系統(tǒng)物理配置和數(shù)據(jù)庫管理系統(tǒng)選擇。(5)詳細(xì)設(shè)計(jì):包括輸入設(shè)計(jì)、輸出設(shè)計(jì)、人機(jī)界面設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、代碼設(shè)計(jì)和安全設(shè)計(jì)。2.信息系統(tǒng)的搭建主要包括硬件搭建和軟件模塊選擇或編寫兩方面。硬件是信息系統(tǒng)建立的基礎(chǔ),它的技術(shù)指標(biāo)決定了信息系統(tǒng)的運(yùn)行速度、可靠性、適用范圍、可維護(hù)性等;3.信息系統(tǒng)的硬件主要包括:服務(wù)器、網(wǎng)絡(luò)設(shè)備、傳感設(shè)備、智能終端等。4.IoT模塊主要有4個(gè)針腳,分別為Vcc(供電)、Gnd(接地)、Tx和Rx(數(shù)據(jù)傳輸接口)5.信息系統(tǒng)的軟件開發(fā)一般包括數(shù)據(jù)管理設(shè)計(jì)(數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)呈現(xiàn))、服務(wù)器端程序、客戶端程序幾個(gè)部分,自行開發(fā)應(yīng)用程序。6.數(shù)據(jù)管理設(shè)計(jì)主要負(fù)責(zé)與具體數(shù)據(jù)管理系統(tǒng)銜接,包括數(shù)據(jù)采集、傳輸、存儲(chǔ)、呈現(xiàn)等方面,為系統(tǒng)中需要長久存儲(chǔ)的數(shù)據(jù)對(duì)象提供數(shù)據(jù)存儲(chǔ)的方案7.客戶端以HTTP的協(xié)議,通過GET或者POST的形式提交數(shù)據(jù)。GET請(qǐng)求是將參數(shù)直接展示在URL中,例如/input?id=1,POST請(qǐng)求并不將參數(shù)直接展示在URL中,例如/input8.JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,它采用完全獨(dú)立于語言的文本格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。9.SQL語句即非結(jié)構(gòu)化查詢語句。常見格式如下:假設(shè)需要?jiǎng)?chuàng)建如下數(shù)據(jù)表(圖1.1):圖1.1格式名樣例說明createtablestudents(nametxt,areatext,idint)createtable數(shù)據(jù)表名(字段名1數(shù)據(jù)類型,.............)創(chuàng)建數(shù)據(jù)表Insertintostudents(name,area,id)values(“Lisi“,“hangzhou“,18)Insertinto數(shù)據(jù)表名(字段名)values(字段值)插入數(shù)據(jù)Deletefromstudentswhereid=1Deletefrom數(shù)據(jù)表名where條件根據(jù)條件刪除Updatestudentssetname=”王五”whereid=1Update數(shù)據(jù)表名set需要修改的內(nèi)容where條件根據(jù)條件修改Select*fromstudentswhereid=1Select*from數(shù)據(jù)表名where條件根據(jù)條件查詢所有字段數(shù)據(jù)Selectnamefromstudentswhereid=1Select需要顯示的字段名from數(shù)據(jù)表名where條件根據(jù)條件查詢某個(gè)字段數(shù)據(jù)表1.110.Flask的數(shù)據(jù)庫操作查詢Importsqllite3=>sqllite3.connect()=>cur=db.cursor()=>cur.execute(sql)=>cur.fetchall()=>cur.close()=>db.close()增、刪、改Importsqllite3=>sqllite3.connect()=>cur=db.cursor=>cur.execute(sql)=>mit()=>cur.close()=>db.close()表1.211.系統(tǒng)測(cè)試的目的是把測(cè)試結(jié)果與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,及時(shí)加以修正。信息系統(tǒng)測(cè)試包括軟件測(cè)試、硬件測(cè)試和網(wǎng)絡(luò)測(cè)試。軟件測(cè)試測(cè)試方法說明備注正確性證明只能發(fā)現(xiàn)程序錯(cuò)誤,但不能證明程序無錯(cuò)紙面推算、不關(guān)注格式是否正確靜態(tài)測(cè)試主要對(duì)程序的編程格式和結(jié)構(gòu)等方面進(jìn)行評(píng)估只關(guān)注格式是否正確動(dòng)態(tài)測(cè)試運(yùn)行被測(cè)的程序,輸入相應(yīng)的測(cè)試數(shù)據(jù),檢查實(shí)際輸出結(jié)果和預(yù)期結(jié)果是否相符只關(guān)注代碼是否能正常運(yùn)行硬件測(cè)試初驗(yàn)測(cè)試、系統(tǒng)測(cè)試/網(wǎng)絡(luò)測(cè)試初驗(yàn)測(cè)試、系統(tǒng)測(cè)試/表1.312.信息系統(tǒng)的文檔,是系統(tǒng)建設(shè)過程的原始資料,是系統(tǒng)出現(xiàn)故障后維護(hù)人員的指南。13.信息系統(tǒng)的文檔類型繁多,分類方法也有很多種。①按信息系統(tǒng)的階段不同,可以分為:系統(tǒng)規(guī)劃階段的文檔,如系統(tǒng)設(shè)計(jì)任務(wù)書和項(xiàng)目開發(fā)計(jì)劃等;系統(tǒng)分析階段的文檔,如系統(tǒng)分析說明書等;系統(tǒng)設(shè)計(jì)階段的文檔,如系統(tǒng)設(shè)計(jì)說明書等;系統(tǒng)實(shí)施階段的文檔,如程序設(shè)計(jì)報(bào)告、系統(tǒng)測(cè)試報(bào)告和開發(fā)總結(jié)報(bào)告等;系統(tǒng)運(yùn)行與維護(hù)階段的文檔,如用戶手冊(cè)、操作手冊(cè)與維護(hù)修改建議書等。②按文檔不同的服務(wù)目的,可以將信息系統(tǒng)的文檔分為三類:用戶文檔、開發(fā)文檔與管理文檔。用戶文檔主要是為用戶服務(wù)的,開發(fā)文檔主要是為開發(fā)人員服務(wù)的,管理文檔主要是為項(xiàng)目管理人員服務(wù)的。14.Flask代碼詳解(1)Flask代碼解析#coding=UTF-8importsqlite3#導(dǎo)入SQLite3模塊importdatetime#導(dǎo)入時(shí)間模塊fromflaskimportFlask,render_template,requestDATABASE='data/data.db'#數(shù)據(jù)庫文件地址app=Flask(_name_)@app.route("/")#路由函數(shù),格式:@app.route(路徑,methods=["post","get"]),methods參數(shù)不寫默認(rèn)為GET請(qǐng)求defhello():#視圖函數(shù),與路由函數(shù)成對(duì)出現(xiàn)db=sqlite3.connect(DATABASE)#鏈接數(shù)據(jù)庫cur=db.cursor()#獲取數(shù)據(jù)庫游標(biāo)cur.execute("SELECT*FROMsensorlogWHEREsensorid=1")#執(zhí)行數(shù)據(jù)庫語句data=cur.fetchall()#獲取數(shù)據(jù)庫返回結(jié)果(查詢數(shù)據(jù)調(diào)用該方法)cur.close()#關(guān)閉數(shù)據(jù)庫游標(biāo)db.close()#關(guān)閉數(shù)據(jù)庫鏈接templ=data[len(data)-1]temp=temp1[2]returnrender_template('vews.html',data=data,temp=temp)#跳轉(zhuǎn)到網(wǎng)頁,傳入兩個(gè)參數(shù),第一個(gè)參數(shù)為需要跳轉(zhuǎn)的頁面路徑,后面的參數(shù)為向頁面?zhèn)鞯膮?shù)#Addingdata@app.route("/input",methods=["POST","GET"])defadd_data():ifrequest.method=='POST':#request.method:獲取請(qǐng)求方法sensorid=int(request.form.get('id"))#flask獲取post請(qǐng)求發(fā)送的參數(shù)的方法:request.form.get(參數(shù)名)sensorvalue=float(request.form.get('val'))else:sensorid=int(request.args.get('id'))#flask獲取get請(qǐng)求發(fā)送的參數(shù)的方法:request.args.get(參數(shù)名)sensorvalue=float(request.args.get('val'))nowtime=datetime.datetime.now()nowtime=nowtime.strftime(%Y-%m-%d%H:%M:%S')db=sqlite3.connect(DATABASE)#鏈接數(shù)據(jù)庫cur=db.cursor()#獲取數(shù)據(jù)庫游標(biāo)cur.execute("INSERTINTOsensorlog(sensorid,sensorvalue,updatetime)VALUES(%d,%f,'%s')"%(sensorid,sensorvalue,nowtime))#執(zhí)行數(shù)據(jù)庫語句mit()#提交數(shù)據(jù)(增刪改數(shù)據(jù)調(diào)用該方法)cur.execute("SELECT*FROMsensorlistwheresensorid=%d"%sensorid)rv=cur.fetchall()#執(zhí)行數(shù)據(jù)庫語句cur.close()#關(guān)閉數(shù)據(jù)庫游標(biāo)db.close()#關(guān)閉數(shù)據(jù)庫鏈接maxrv=rv[0][2]minrv=rv[0][3]ifsensorvalue>maxrvorsensorvalue<minrv:return'0'else:return'1'if_name__=="_main__":app.run(host="",port=8080,debug=True)#啟動(dòng)函數(shù),host為服務(wù)器IP地址,port為端口號(hào),debug參數(shù)為True即打開調(diào)試模式,F(xiàn)alse表示關(guān)閉調(diào)試模式html代碼<body><metahttp-equiv="refresh"content="60"></body><style><!--樣式代碼-->#center{MARGIN-RIGHT:auto;MARGIN-LEFT:auto;background:#eff7ff;width:600px;height:500px;vertical-align:left;overflow-y:scroll;overflow-x;scroll}</style><title>室內(nèi)環(huán)境實(shí)時(shí)監(jiān)測(cè)系統(tǒng)</title><!--網(wǎng)頁標(biāo)題--><hlalign="center">室內(nèi)環(huán)境實(shí)時(shí)監(jiān)測(cè)系統(tǒng)</h1><h2align="center">當(dāng)前室內(nèi)溫度:{{temp}}</h2><h2align="center"><ahref="/">刷新</a>歷史數(shù)據(jù)列表:</h2><divid="center"style="border:2pxsolid#96c2f1">溫度記錄時(shí)間<br><!--此處的data即本篇(1)處中代碼{render_template('vews.html,data=data,temp=temp)}中的data-->{%foriindata[:-1]%}{{i[2]}}{{i[3]}}<br><!--輸出結(jié)果需要在結(jié)果前套{{}}-->{%endfor%}</div>(3)Micro:bit訪問Url,micro:bit程序代碼實(shí)現(xiàn)。micro:bit先通過串口配置Wi-Fi模塊,然后采集溫度傳感器數(shù)值,拼接為一個(gè)URL地址,如01:8080/input?id=1&val=22.5。每隔5秒鐘訪問這個(gè)URL一次,若返回為0,則讓蜂鳴器發(fā)出聲音frommicrobitimport*importObloq#Lm35接在pinOIP="01"#IP地址PORT="8080"#端口號(hào)SSID="jf"#Wifi名PASSWORD="pkq88888"#Wifi密碼uart.init(baudrate=115200,bits=8,parity=None,stop=1,tx=pin1,rx=pin2)#通過串口鏈接,tx鏈在pin1,rx鏈接在pin2【教科書上有誤,此處勘正】whileObloq.connectWifi(SSID,PASSWORD,10000)!=True:#鏈接wifi,10秒內(nèi)沒有鏈接成功,就提示失敗display.show(".")#顯示...display.scroll(Obloq.ifconfig())Obloq.httpSet(IP,PORT)#循環(huán)滾動(dòng)鏈接信息whileTrue:errno,resp=Obloq.get("input?id=1&val="+str(pinO.read_analog()),10000)#以get請(qǐng)求形式請(qǐng)求URL,10秒內(nèi)沒有鏈接成功,就提示失敗iferrno==200:#200表示請(qǐng)求成功display.scroll(resp)else:display.scroll(str(erno))sleep(1000*5)#暫停5秒flask中從數(shù)據(jù)庫中獲取數(shù)據(jù)返回的結(jié)果為【二維數(shù)組】例如有數(shù)據(jù)表uaidnamepwd1ZhangSan1234562LiSi123123表ua...................以上代碼省略...................cur.execute("SELECT*FROMua")rv=cur.fetchall()...................以下代碼省略...................rv的結(jié)果為:[[1,”ZhangSan”,”123456”],[2,”LiSi”,”123

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論