版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第九章信息系統(tǒng)的搭建實例1.信息系統(tǒng)搭建的前期準(zhǔn)備。(1)需求分析:包括目標(biāo)期待、功能需求、性能需求、環(huán)境資源需求、用戶界面需求、可拓展性需求。(2)可行性分析:主要從技術(shù)、經(jīng)濟(jì)、社會意義等方面分析系統(tǒng)的可行性。(3)開發(fā)模式選擇:搭建系統(tǒng)一般可選擇B/S或C/S兩種模式中的一種(4)概要設(shè)計:包括模塊設(shè)計、系統(tǒng)物理配置和數(shù)據(jù)庫管理系統(tǒng)選擇。(5)詳細(xì)設(shè)計:包括輸入設(shè)計、輸出設(shè)計、人機(jī)界面設(shè)計、數(shù)據(jù)庫設(shè)計、代碼設(shè)計和安全設(shè)計。2.信息系統(tǒng)的搭建主要包括硬件搭建和軟件模塊選擇或編寫兩方面。硬件是信息系統(tǒng)建立的基礎(chǔ),它的技術(shù)指標(biāo)決定了信息系統(tǒng)的運行速度、可靠性、適用范圍、可維護(hù)性等;3.信息系統(tǒng)的硬件主要包括:服務(wù)器、網(wǎng)絡(luò)設(shè)備、傳感設(shè)備、智能終端等。4.IoT模塊主要有4個針腳,分別為Vcc(供電)、Gnd(接地)、Tx和Rx(數(shù)據(jù)傳輸接口)5.信息系統(tǒng)的軟件開發(fā)一般包括數(shù)據(jù)管理設(shè)計(數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)存儲、數(shù)據(jù)呈現(xiàn))、服務(wù)器端程序、客戶端程序幾個部分,自行開發(fā)應(yīng)用程序。6.數(shù)據(jù)管理設(shè)計主要負(fù)責(zé)與具體數(shù)據(jù)管理系統(tǒng)銜接,包括數(shù)據(jù)采集、傳輸、存儲、呈現(xiàn)等方面,為系統(tǒng)中需要長久存儲的數(shù)據(jù)對象提供數(shù)據(jù)存儲的方案7.客戶端以HTTP的協(xié)議,通過GET或者POST的形式提交數(shù)據(jù)。GET請求是將參數(shù)直接展示在URL中,例如/input?id=1,POST請求并不將參數(shù)直接展示在URL中,例如/input8.JSON是一種輕量級的數(shù)據(jù)交換格式,它采用完全獨立于語言的文本格式,易于閱讀和編寫,同時也易于機(jī)器解析和生成。9.SQL語句即非結(jié)構(gòu)化查詢語句。常見格式如下:假設(shè)需要創(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ù)條件查詢某個字段數(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)測試的目的是把測試結(jié)果與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,及時加以修正。信息系統(tǒng)測試包括軟件測試、硬件測試和網(wǎng)絡(luò)測試。軟件測試測試方法說明備注正確性證明只能發(fā)現(xiàn)程序錯誤,但不能證明程序無錯紙面推算、不關(guān)注格式是否正確靜態(tài)測試主要對程序的編程格式和結(jié)構(gòu)等方面進(jìn)行評估只關(guān)注格式是否正確動態(tài)測試運行被測的程序,輸入相應(yīng)的測試數(shù)據(jù),檢查實際輸出結(jié)果和預(yù)期結(jié)果是否相符只關(guān)注代碼是否能正常運行硬件測試初驗測試、系統(tǒng)測試/網(wǎng)絡(luò)測試初驗測試、系統(tǒng)測試/表1.312.信息系統(tǒng)的文檔,是系統(tǒng)建設(shè)過程的原始資料,是系統(tǒng)出現(xiàn)故障后維護(hù)人員的指南。13.信息系統(tǒng)的文檔類型繁多,分類方法也有很多種。①按信息系統(tǒng)的階段不同,可以分為:系統(tǒng)規(guī)劃階段的文檔,如系統(tǒng)設(shè)計任務(wù)書和項目開發(fā)計劃等;系統(tǒng)分析階段的文檔,如系統(tǒng)分析說明書等;系統(tǒng)設(shè)計階段的文檔,如系統(tǒng)設(shè)計說明書等;系統(tǒng)實施階段的文檔,如程序設(shè)計報告、系統(tǒng)測試報告和開發(fā)總結(jié)報告等;系統(tǒng)運行與維護(hù)階段的文檔,如用戶手冊、操作手冊與維護(hù)修改建議書等。②按文檔不同的服務(wù)目的,可以將信息系統(tǒng)的文檔分為三類:用戶文檔、開發(fā)文檔與管理文檔。用戶文檔主要是為用戶服務(wù)的,開發(fā)文檔主要是為開發(fā)人員服務(wù)的,管理文檔主要是為項目管理人員服務(wù)的。14.Flask代碼詳解(1)Flask代碼解析#coding=UTF-8importsqlite3#導(dǎo)入SQLite3模塊importdatetime#導(dǎo)入時間模塊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請求defhello():#視圖函數(shù),與路由函數(shù)成對出現(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)頁,傳入兩個參數(shù),第一個參數(shù)為需要跳轉(zhuǎn)的頁面路徑,后面的參數(shù)為向頁面?zhèn)鞯膮?shù)#Addingdata@app.route("/input",methods=["POST","GET"])defadd_data():ifrequest.method=='POST':#request.method:獲取請求方法sensorid=int(request.form.get('id"))#flask獲取post請求發(fā)送的參數(shù)的方法:request.form.get(參數(shù)名)sensorvalue=float(request.form.get('val'))else:sensorid=int(request.args.get('id'))#flask獲取get請求發(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)#啟動函數(shù),host為服務(wù)器IP地址,port為端口號,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)境實時監(jiān)測系統(tǒng)</title><!--網(wǎng)頁標(biāo)題--><hlalign="center">室內(nèi)環(huán)境實時監(jiān)測系統(tǒng)</h1><h2align="center">當(dāng)前室內(nèi)溫度:{{temp}}</h2><h2align="center"><ahref="/">刷新</a>歷史數(shù)據(jù)列表:</h2><divid="center"style="border:2pxsolid#96c2f1">溫度記錄時間<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程序代碼實現(xiàn)。micro:bit先通過串口配置Wi-Fi模塊,然后采集溫度傳感器數(shù)值,拼接為一個URL地址,如01:8080/input?id=1&val=22.5。每隔5秒鐘訪問這個URL一次,若返回為0,則讓蜂鳴器發(fā)出聲音frommicrobitimport*importObloq#Lm35接在pinOIP="01"#IP地址PORT="8080"#端口號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)滾動鏈接信息whileTrue:errno,resp=Obloq.get("input?id=1&val="+str(pinO.read_analog()),10000)#以get請求形式請求URL,10秒內(nèi)沒有鏈接成功,就提示失敗iferrno==200:#200表示請求成功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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人養(yǎng)老服務(wù)機(jī)構(gòu)服務(wù)合同3篇
- 二零二五年度數(shù)字圖書館搭建與資源整合合同3篇
- 溫州浙江溫州平陽縣科學(xué)技術(shù)局招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 清遠(yuǎn)2025年廣東清遠(yuǎn)市清城區(qū)龍?zhí)伶?zhèn)人民政府招聘聘員30人筆試歷年參考題庫附帶答案詳解
- 淮安2024年江蘇淮安八十二醫(yī)院招聘專業(yè)技術(shù)人員13人筆試歷年參考題庫附帶答案詳解
- 科技在醫(yī)療農(nóng)業(yè)中的應(yīng)用案例分享
- 網(wǎng)絡(luò)時代的學(xué)生心理壓力與應(yīng)對方法
- 揭陽2024年廣東揭陽揭西縣招聘事業(yè)單位工作人員60人筆試歷年參考題庫附帶答案詳解
- 成都四川成都市雙流區(qū)黃龍溪學(xué)校招聘體育教師筆試歷年參考題庫附帶答案詳解
- 2025年西師新版七年級地理上冊月考試卷含答案
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗
- 五年級數(shù)學(xué)應(yīng)用題100道
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套課件(馬工程)
- 高三開學(xué)收心班會課件
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評定方法
- 科技計劃項目申報培訓(xùn)
- 591食堂不合格食品處置制度
- 黑布林繪本 Dad-for-Sale 出售爸爸課件
評論
0/150
提交評論