資源簡介 (共83張PPT)2.6 網絡應用軟件開發(fā)第二章 信息系統(tǒng)的支撐技術1.借助工具與平臺開發(fā)網絡應用軟件。2.掌握網絡架構C/S和B/S的優(yōu)缺點。目 錄CONTENTS知識梳理01例題精析02隨堂檢測03課時作業(yè)04知識梳理1一、網絡應用開發(fā)概述在選擇開發(fā)平臺前,必須先了解網絡應用軟件的實現架構及不同分類。網絡應用軟件的實現架構有兩種,分別是__________________和__________________。1.客戶端/服務器架構(Client/Server 架構,簡稱____________)(1)概述:它可以充分利用客戶端與服務器端的硬件環(huán)境的優(yōu)勢,將任務合理地分配到客戶端和服務器端。①客戶端:主要完成用戶的具體業(yè)務,如人機交互、數據的輸入與輸出等。②服務器端:主要提供數據管理、數據共享、系統(tǒng)維護和并發(fā)控制等。客戶端/服務器架構瀏覽器/服務器架構C/S架構(2)優(yōu)點:降低了系統(tǒng)的通信開銷和開發(fā)的難度。(3)缺點:客戶端軟件須安裝才能使用,給應用程序的升級和維護帶來一定的困難。C/S架構圖2.瀏覽器/服務器架構(Browser/Server架構,簡稱____________)(1)概述:它是隨著Internet技術的興起,對C/S架構改進后產生的一種軟件系統(tǒng)體系結構。客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現,應用程序基本上都集中于服務器端。(2)優(yōu)點:客戶端無需專門程序,應用程序的升級和維護都可以在服務器端完成,升級和維護都較方便,極大地降低了成本和工作量。(3)缺點:服務器的負荷較重,對服務器的要求較高。B/S架構圖B/S架構二、網絡應用的規(guī)劃設計1.過程(1)對網絡應用進行詳細的分析。(2)在分析的基礎上確定應用的架構模式,并根據架構模式選擇合適的開發(fā)工具及現有的應用框架,同時明確應用的各個功能模塊。(3)用統(tǒng)一、規(guī)范的圖表和書面語言表達出來。2.舉例:“網絡聊天機器人”應用的規(guī)劃設計(1)應用的目的該應用所要解決的問題是人機對話,輸入數據是人向機器人說出的話語,輸出數據是機器人對話語的合理回應。(2)應用的總體架構因為該應用為網絡應用,只用于實現簡單的人機對話,所以對服務器的要求不高。同時考慮到便于應用的維護和發(fā)布,本應用采用B/S架構,開發(fā)工具及框架選取Python、Flask Web框架及 SQLite數據庫。(3)應用的功能組成根據網絡聊天機器人的功能可以確定該應用的主要功能模塊。另外,網絡應用一般是多用戶并發(fā)使用,所以必須具備用戶登錄注銷功能模塊和用戶聊天記錄等的管理功能模塊。“網絡聊天機器人”功能圖(4)界面設計及代碼實現在確認應用的功能組成后,就可以按各個功能模塊的作用設計出相應的人機交互界面,并在此基礎上完成代碼編制。如登錄注銷功能用于用戶進入和離開機器人聊天室,也即實現用戶身份的認證功能;聊天功能模塊用于實現人機對話過程。三、編寫網絡應用程序AIML:Artificial Intelligence Markup Language,即人工智能標記語言。可以通過導入該模塊解決網絡聊天機器人問題。編寫網絡應用程序首先要確定相應的Web應用框架,在Python中常用的Web應用框架有Flask、Django及Tronado,其中Flask Web框架非常精簡,屬于小型框架。Flask Web 框架具有一個包含基本服務的核心,并且是一個可擴展的框架,很多功能可以通過擴展來實現。它允許開發(fā)者任意挑選符合項目需求的擴展,甚至可以自行開發(fā)。Web應用程序編寫流程1.導入框架模塊導入框架模塊為Web應用程序導入Flask框架及擴展的模塊,以便在程序代碼中使用框架提供的功能,其代碼如下:from flask import Flask #導入Flask框架模塊2.創(chuàng)建應用實例創(chuàng)建應用實例為Web應用程序創(chuàng)建Flask類的對象,即創(chuàng)建一個應用實例,其代碼如下:app=Flask(_ _name_ _)3.編寫路由和視圖函數建立URL到程序代碼的關聯,其代碼如下:@app.route('/') #路由def index(): #視圖函數return'這是我的第一個網頁程序!'當用戶在瀏覽器中向Web服務器發(fā)出請求時,Web服務器會把請求發(fā)送給Flask應用實例,如上面的APP。那么應用實例是如何知道每個URL與哪些Python代碼相關聯并運行的呢? Flask是通過路由和視圖函數的方法來解決這個問題的。上述代碼中的“@ app.route('/')”與“index()”就是一對路由和視圖函數,而路由又與URL相關聯,如網站為www.,當用戶訪問網頁http:∥www./時,則視圖函數index()的代碼就會被運行。具體如圖所示。URL、路由和視圖函數關聯圖4.啟動Web應用其代碼如下:if _ _ name _ _=='_ _main_ _':app.run()在Flask框架中Web服務器是自帶的,調用應用實例APP的run方法就會啟動該集成的開發(fā)Web服務器,服務器啟動后就會進入輪詢狀態(tài),等待用戶訪問并處理用戶請求,直到程序停止。“_ _name_ _=='_ _main_ _'”是確保只有當直接執(zhí)行這個腳本時才啟動開發(fā)Web服務器,如:Python web.py。四、調試發(fā)布程序在編寫過程中會出現錯誤,需要進行調試、修正錯誤。錯誤一般包括兩類:一類是相對簡單的語法錯誤,在程序執(zhí)行時Python會檢查出相應的錯誤并給出修改建議;另一類是相對復雜的邏輯錯誤,需要編程人員仔細研究和分析。調試結束后,在確保應用能正確運行的情況下,才能將其發(fā)布至服務器,供用戶使用。1.調試模式Flask Web框架提供了一個稱為調試模式的功能,只要在開發(fā)配置或程序代碼中設置debug= True就能打開調試功能。注意不要在實際的網站應用環(huán)境,即生產環(huán)境中使用調試模式,否則將會是一個巨大的安全漏洞。那么在實際生產環(huán)境中如果程序出現問題,該如何記錄以備開發(fā)人員檢查呢?開發(fā)人員往往會利用_________________________________進行報錯,以及用__________進行記錄等調試方法對程序進行查錯及排錯。電子郵件來發(fā)送程序運行的錯誤信息日志文件2.應用發(fā)布當Web應用程序通過調試并修改完善后投入實際應用,在開發(fā)環(huán)境中我們只需要通過如下命令就可以啟動Web應用,以供他人訪問使用。Python應用程序.py runserver但這是Flask Web框架自帶的開發(fā)Web服務器,它僅供開發(fā)者調試使用,本身不夠強健、安全和高效,同時也沒有顧及實際應用中隨著用戶數量增加而產生的性能問題,因此不適合作為實際生產環(huán)境使用。在實際生產環(huán)境中常見的可靠的Web服務器有很多,如IIS、 Apache、Nginx、Tomcat及WebLogic等,只需將自己編寫的Web應用程序以WSGI應用或CGI形式發(fā)布至相應的Web服務器即可。例題精析2例1 小明搭建了一個“土壤濕度監(jiān)測系統(tǒng)”,能通過瀏覽器查看實時濕度數據,當濕度小于某閾值時,信息系統(tǒng)自動開啟噴淋設備,大于某閾值時自動關閉噴淋設備。該系統(tǒng)的架構如圖所示:CA.該信息系統(tǒng)采用了B/S架構模式 B.該信息系統(tǒng)具備閉環(huán)控制功能C.該信息系統(tǒng)僅傳輸了土壤濕度數據 D.網絡是該信息系統(tǒng)中重要的支撐技術解析 本題考查信息系統(tǒng)的搭建。A選項Web服務器提供網頁瀏覽服務,因此是B/S架構。B選項圖中傳感器來獲取信息,通過服務器進行處理,并采用執(zhí)行器輸出,具備閉環(huán)控制功能。C選項傳感器傳輸的是土壤濕度,但信息系統(tǒng)在工作時,肯定還要傳輸控制信息等。D選項網絡可以將地理位置不同、功能獨立的多個計算機系統(tǒng)互聯起來,因此是信息系統(tǒng)的重要支撐技術。A.某校區(qū)內部的校園一卡通系統(tǒng)的計算機網絡一般屬于局域網(LAN)B.各消費POS機與各個結算中心之間的數據傳輸必須遵循HTTP協議C.各終端可以通過瀏覽器實現數據查詢、后臺管理等操作,那么該系統(tǒng)屬于B/S架構D.網絡中的數據通信系統(tǒng)主要由傳輸介質和網絡互聯設備等組成B解析 本題考查信息系統(tǒng)中網絡技術相關知識。若消費POS機與各個結算中心之間的所有數據都是基于B/S模式的,那么他們間的數據傳送基本需要HTTP協議完成。但除了B/S模式以外還有很多其他傳送模式,比如C/S或者點對點,這些就無需HTTP協議。從目前系統(tǒng)看,數據傳輸基本都需要遵循TCP/IP協議。A.搭建該系統(tǒng)需要配備光線傳感器和濕度傳感器B.該系統(tǒng)的網絡架構為 C/S 架構C.執(zhí)行器可以響應 PC 客戶端的請求D.該系統(tǒng)客戶端可以獲取輸入端傳感器的數據B解析 本題考查網絡程序開發(fā)。A選項當室內亮度和濕度達到系統(tǒng)設定的閾值時,執(zhí)行器開始工作,因此需要這兩樣傳感器。B選項題目中采用Web服務器,可知為B/S架構。C選項執(zhí)行器響應PC客戶端請求,執(zhí)行相應的動作。A.搭建該系統(tǒng)需要配備光敏傳感器和濕度傳感器B.該系統(tǒng)運行速度僅取決于硬件的性能C.本系統(tǒng)采用B/S網絡開發(fā)模式進行工作D.該系統(tǒng)客戶端可以通過網絡獲取輸入端傳感器的數據B解析 本題綜合考查信息系統(tǒng)知識。選項ACD均正確。該系統(tǒng)運行速度取決于軟件及硬件的綜合性能。例3 小明使用Flask模塊制作了某信息系統(tǒng)的用戶登錄驗證子系統(tǒng),其各個路由、視圖說明以及實現程序如下所示,請回答相關問題。路由地址 視圖說明/ 系統(tǒng)首頁/user/ 顯示歡迎信息以及用戶對應的信息/system?name=xiaoming&password=secretinf 傳遞登錄信息完成驗證后顯示系統(tǒng)管理頁面from flask import Flask, render_template, redirectapp=Flask(_ _name_ _)@app.route("/")def index():return render_template("index.html")__①__________def login():#查詢代碼略if len(cur.fetchall()) >0: #找到用戶的相關信息return render_template("manage.html", username=usr)else:return redirect('/')@app.route("/user/")def user(name):return "Hello,"+name+"!"if _ _name_ _=="_ _main_ _":app.run(②________)(1)程序第①空是傳遞登錄信息,進行登錄驗證并顯示系統(tǒng)管理頁面的路由與視圖函數,那么該處填寫的語句是____________(單選,選填字母)。[email protected]("/system",methods=["GET"])[email protected]("/login",methods=["GET"])[email protected]("/user",methods=["POST"])[email protected]("/login",methods=["POST","GET"])(2)若該Web服務器的地址是192.168.0.1,運行端口是8080,程序試運行時需打開調試功能,那么第②空應該填寫的語句是__________(單選,選填字母)。A.host="192.168.0.1",port="8080",debug=TrueB.host="http:∥192.168.0.1", port="8080",debug=TrueC.host="http:∥192.168.0.1:8080",debug=TrueD.host="192.168.0.1:8080",port="8080"(3)該程序運行后,在瀏覽器輸入網址http:/192.168.0.1:8080/user/xiaoming,網頁顯示內容為:________________答案 (1)A (2)A (3)Hello, xiaoming!解析 本題考查使用Flask搭建Web應用程序的相關知識。(1)考查路由地址和視圖函數知識。由題中的路由表可知,路由地址是/system,注意路由地址與視圖函數名稱無關(可以不相同,但要寫一起),而視圖函數中獲取數據的方式由request.args中獲取,因此視圖函數的methods參數值必須要有“GET”值方可。(2)考查Web應用程序啟動的參數設定知識。應用程序對象的run()函數中的host參數指明了對外提供的服務器IP地址,注意,只需寫IP地址即可,不能加協議和端口,而port參數才是指明端口的參數,debug參數可以設置是否啟用調試模式。(3)考查了帶參數的路由地址方式,路由中的是一個變量,可以接受路由地址中的參數值,因此“/user/xiaoming”中user是路由,xiaoming是參數值,因此輸出Hello,xiaoming!。變式訓練3 小明開發(fā)了蔬菜生長管理系統(tǒng)由智能終端、溫度傳感器、濕度傳感器、澆水控制器和Iot模塊組成,智能終端通過無線網絡將溫濕度數據上傳到服務器,根據服務器反饋的數據執(zhí)行是否澆水操作,學生可通過手機或電腦瀏覽器查看歷史數據。服務器提交的部分數據和服務器端對應的路由和視圖函數的部分代碼如圖所示。變量名 作用 服務器端部分代碼id 傳感器編號 @app.route('/query')def index():t 溫度d 濕度若當前實時溫度是32,濕度是20,智能終端需要向服務器發(fā)送的URL是http:∥192.168.0.10:5050/①________?id=1&②________。下列選項正確的是(單選,填字母)( )A.①index ②t=20&d=32 B.①index ②t=32&d=20C.①query ②t=20&d=32 D.①query ②t=32&d=20解析 如題圖所示數據,得到URL為:http:∥192.168.0.10:5050/query?id=1&t=32&d=20。D隨堂檢測3A.在C/S架構中有專門的數據庫服務器,但還要運行客戶端程序B.在B/S架構中,應用程序部署在服務器端,客戶端通過瀏覽器訪問應用程序C.B/S架構中,客戶端發(fā)送HTTP請求消息傳給服務器,Web應用程序處理請求并把相應的HTML頁面?zhèn)鹘o客戶端D.Web應用是基于C/S架構的,也就是客戶端/服務器架構D解析 Web應用是基于B/S架構的,即瀏覽器/服務器架構。A.界面美觀 B.易于維護C.訪問范圍廣 D.可擴展性好A解析 選項BCD均是B/S架構的優(yōu)點,而界面美觀的特點不是本質特點。閱讀下列材料,回答第 3至4題。小明使用 Flask Web 框架搭建了一個家庭監(jiān)控報警系統(tǒng)。智能終端通過攝像頭、紅外線傳感器、煙霧傳感器收集數據,當煙霧數據達到一定值,或者紅外線傳感器檢測到有人入侵時,均會向用戶手機發(fā)送短信預警信息,用戶使用手機瀏覽器查看監(jiān)控信息。系統(tǒng)結構示意圖如圖所示。A.該信息系統(tǒng)采用了C/S模式架構B.各類傳感器的作用是采集數據C.用戶使用手機瀏覽器可查看實時監(jiān)控信息D.智能終端通過Wi-Fi連接網絡并將數據傳輸到服務器A解析 A選項觀察圖片可知該用戶通過瀏覽器查看監(jiān)控信息,因此該系統(tǒng)采用了B/S模式架構。4.當有人經過紅外檢測區(qū)時,傳感器的反饋值會由1變?yōu)?。部分代碼如下:Bwhile True: val=pinl.read_digital() #采集紅外傳感器信號#處理采集到的信號,代碼略sleep(500)下列說法正確的是( )A.智能終端每500秒采集一次數據B.從傳感器獲取的數據為“0”時,用戶會收到預警信息C.紅外傳感器采集的是環(huán)境中的聲音信號D.紅外傳感器采集到的數據使用RFID傳輸到服務器解析 A選項該智能終端每500毫秒采集一次數據;B選項“當有人經過紅外檢測區(qū)時,傳感器的反饋值會由1變?yōu)?”,B選項正確;C選項紅外傳感器采集的是環(huán)境中的模擬信號,再處理成可以處理的數字信號;D選項紅外傳感器采集到的數據傳輸到服務器的方式很多如無線網絡、藍牙、串口等。5.小王開發(fā)基于Python的FlaskWeb框架的室內光線強度監(jiān)測信息系統(tǒng),系統(tǒng)程序及相關的子系統(tǒng)都部署在Web服務器端,網站框架如圖所示。該系統(tǒng)的客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現,應用程序基本上都集中于服務器端。(1)由上述材料可知,服務器端的IP地址為________,該系統(tǒng)的實現架構屬于________(選填:C/S架構、B/S架構)。(2)實現上述系統(tǒng)的服務器端Python程序如下:#注意:將劃橫線處填寫完整。from flask import Flask,render_template,request#導入Flask庫函數app=Flask(_ _name_ _)@app.route("/")def index():#獲取采集的數據并存儲到列表變量data,代碼略returnrender_template("vews.html",data=data)@app.route(①________,methods=["GET"]) #數據采集子頁面路由命令def get():id=int(request.args.get("id")) #獲取URL中“id=1”后的數據“1”d=float(②________) #變量d存儲采集到的光線數據#打開數據庫,并將接收的數據存儲到數據庫中,代碼略return "get data ok"#其他系統(tǒng)子頁面路由,代碼略if _ _name_ _=='_ _main_ _':app.run(③________) #啟動Web服務器答案 (1)192.168.1.100 B/S架構(2)①"/s" ②request.args.get("d")③host="192.168.1.100",port=5000解析 本題考查網絡應用程序的開發(fā)。(1)從題圖中可知IP地址,系統(tǒng)程序及相關的子系統(tǒng)都部署在Web服務器端,因此屬于B/S架構。(2)①數據采集子頁面路由,從圖中可知路由為“s”。②變量d存儲采集到的光線數據,再參照上一條語句,可以得到答案。③略。6.小張為學校搭建教室監(jiān)測系統(tǒng),該系統(tǒng)能實現監(jiān)測教室的聲音強度,并轉換成分貝值,存入系統(tǒng)數據庫,當分貝值超過閾值60分貝時教室音響發(fā)出提醒或警告。教師通過瀏覽器查看實時監(jiān)測數據。該系統(tǒng)服務器端程序基于FlaskWeb框架編寫,部分代碼如下。#導入Falsk框架模塊及其他相關模塊,代碼略app=Flask(_ _name_ _)@app.route("/jiance")def count():#根據實時監(jiān)測數據向智能終端發(fā)送指令,代碼略@app.route("/show")def cx():#從數據庫讀取監(jiān)測數據,并返回查看頁面,代碼略@app.run(host="192.168.10.100",port=8080)用于查看實時監(jiān)測數據,則瀏覽器端應訪問的URL是http:∥________。答案 192.168.10.100:8080/show解析 從數據庫讀取監(jiān)測數據的路由為show。7.為了幫助學校更好開展科技文化節(jié)報名工作,小王設計了一個網上報名系統(tǒng),用戶通過瀏覽器在相應頁面進行登錄、報名、查詢等操作。該系統(tǒng)服務器端程序采用FlaskWeb框架編寫,框架結構如圖所示。(1)小王填寫報名參賽項目,應訪問子頁面的URL是:http:∥________。(2)服務器端登錄頁面部分代碼如下,請在劃線處填入合適的代碼。def check(username,password):#驗證用戶名username、密碼password,若正確返回True,否則返回False,代碼略app=Flask(_ _name_ _)@app.route("/log",methods=["GET","POST"])def reg():name=request.form.get("xm") #獲取用戶名pwd=request.form.get("psd") #獲取密碼if________:return "登錄成功!"else:return "請重新登錄!"(3)下列關于該信息系統(tǒng)的描述,正確的是________(多選,填字母)。(注:全部選對的得2分,選對但不全的得1分,不選或有選錯的得0分)A.實現登錄功能的視圖函數名稱為logB.該系統(tǒng)網絡應用軟件的實現架構是B/S架構C.在服務器主機上無法實現登錄、報名、查詢等操作D.服務器采用POST方式接收用戶名和密碼數據答案 (1)192.168.10.120:8080/project (2)check(name,pwd) (3)BD解析 (1)報名參數的路由為project。(2)先獲取用戶名name和密碼pwd,再調用函數check來檢測用戶名和密碼是否正確。(3)A選項實現登錄功能的路由名稱為log。B選項采用瀏覽器連接,屬于B/S架構。C選項服務器也同時可以用作客戶端。D選項從語句request.form可知為POST方式。8.某大學研究小組使用FlaskWeb框架開發(fā)了簡易版“智能雨刷”測試系統(tǒng),它可以利用傳感器獲取雨量數據,對傳感器收集的數據分析后,根據給定的閾值自動控制雨刷器運行。系統(tǒng)的架構圖如圖所示,請回答下列問題:智能雨刷測試系統(tǒng)的智能終端和服務器的程序代碼如下:#服務器端的部分程序代碼import sqlite3from flask import Flask,requestapp=Flask(_ _name_ _)@app.route("①________",methods=["GET"])def add_data():rain=int(request.args.get("rain"))#用戶設置的閾值300賦值給max,代碼略if rain>max:return 1else:return 0if _ _name_ _=="_ _main_ _":app.run(host="192.168.1.233",port=5050)#智能終端的部分程序代碼IP="192.168.1.233";PORT="5050";SSID="JF501";PASSWORD="JF123456"#定義IoT模塊和micro:bit開發(fā)板串口通信參數、IoT模塊連接Wi-Fi等代碼略#micro:bit和服務器建立連接相關代碼略while True:rain=pin0.read_analog()errno,resp=Obloq.get("sr?rain="+str(rain),10000)if errno==200:display.show(str(resp))if resp==1:pin12.write_digital(1)else:pin12.write_digital(0)sleep(5000)(1)①請在劃線處填入合適的代碼。②智能終端根據resp值的情況控制雨刷器的工作狀態(tài),resp的值來自________(單選,填字母:A.傳感器采集/B.服務器返回/C.智能終端分析得出)。(2)請通過增加傳感器和執(zhí)行器(或使用汽車已有的執(zhí)行器)對該系統(tǒng)功能進行一項擴展,寫出傳感器和執(zhí)行器的名稱,并描述實現的功能:___________________________________________________________________________________。答案 (1)①/sr ②B (2)在車內增加濕度傳感器和除濕器,當濕度大于閾值時,除濕器將會啟動除濕功能;在車內增加溫度傳感器,當溫度大于閾值時,空調將會啟動制冷功能或其他有效答案解析 (1)智能終端部分代碼errno,resp=Obloq.get("sr?rain="+str(rain),10000)可知,傳遞參數的URL路由為/sr,變量為rain,雨量傳感器檢測到雨量,通過IOT模塊將雨量用URL的形式傳輸給服務器,服務器返回相應的狀態(tài)碼errno和返回值resp。(2)略。9.某網站對信息進行加密解密,選擇頁面“index.html”如圖a,加密頁面“jia.html”如圖b,解密頁面“jie.html”如圖c。在選擇頁面點擊相應按鈕,選擇加密或解密。選擇加密時,在明文文本框中輸入明文,點擊“加密”按鈕,網頁顯示密文與對應的密鑰。加密規(guī)則為打亂明文對應的索引作為密鑰,再利用該索引逐個取明文字符連接成密文,例如:明文為“信息技術”,若被打亂的索引為[2,0,1,3],則密文為“技信息術”,密鑰為“2,0,1,3”。選擇解密時,在密文文本框中輸入密文,密鑰文本框輸入密鑰,點擊“解密”按鈕,網頁顯示明文。(1)該網絡應用屬于架構__________。(單選,填字母:A.B/S架構,B.C/S架構)(2)若待解密文本為“自息愛信也我己愛”,密鑰為“2,7,1,6,4,0,3,5”,則解密結果是____________________。(3)實現該功能的Python程序如下,請在劃線處填入合適的代碼:from flask import render_template,request,Flaskimport randomapp=Flask(_ _name_ _) #創(chuàng)建應用實例@app.route('/') #選擇頁面路由def index():return render_template('①________')#加密功能代碼略,以下為解密代碼@app.route('/jiemi1/',methods=["GET","POST"])def jiemi1():wb=request.form["wb"] #變量 wb 存儲密文,變量 keyo 存儲密鑰keyo=request.form["key"] #利用 request 獲取網頁文本框內容,返回示例:“2,0,1,3”keyn=list(map(int,keyo.split(",")))#將字符串keyo轉換為數值列表,示例:[2,0,1,3]result=””for i in range(len(keyn)):for j in range(len(keyn)):if ②________:breakresult+=wb[j]return render_template("jie.html",WB=wb,KEY=keyo,RESULT=result)if _ _name_ _=="_ _main_ _":③________答案 (1)A (2)我愛自己也愛信息 (3)①index.html ②keyn[j]==i ③app.run()解析 本題考查網絡程序的開發(fā)。(1)通過瀏覽器進行信息傳遞,屬于B/S架構。(2)根據密鑰,找到索引位置為52064731,可以得到解密結果。(3)①從題圖a中可知,主頁名省略,默認為index.html。②找到相對所在的索引位置j。③啟動服務器。4課時作業(yè)1.關于網絡應用軟件的實現架構,說法正確的是( )C解析 本題考查的是網絡應用開發(fā)概述。A選項中網絡應用軟件的實現架構有兩種;B選項中降低了系統(tǒng)的通信開銷和開發(fā)的難度是客戶端/服務器架構的優(yōu)點;C選項正確;D選項B/S架構是隨著Internet技術的興起,對C/S架構改進后產生的一種軟件系統(tǒng)體系結構。A.網絡應用軟件的實現架構有三種B.瀏覽器/服務器架構的優(yōu)點是降低了系統(tǒng)的通信開銷和開發(fā)的難度C.C/S服務器端主要提供數據管理、數據共享、系統(tǒng)維護和并發(fā)控制等D.C/S是對B/S架構改進后產生的一種軟件系統(tǒng)體系結構2.在編寫Flask網絡應用程序時需完成以下操作,下列操作屬于創(chuàng)建應用實例的是( )BA.from flask import FlaskB.app=Flask(_ _name_ _)[email protected]('/')D.app.run()3.客戶端無需專門的應用程序,具有這一特點的網絡架構是( )C解析 本題考查的是網絡應用開發(fā)概述。瀏覽器/服務器架構,簡稱B/S架構,其優(yōu)點是升級和維護很方便。A.C/S架構 B.C/C架構C.B/S架構 D.B/C架構4.如圖所示是某信息系統(tǒng)的網絡架構圖:D解析 本題考查網絡開發(fā)模式。由于有Web服務器,因此該模式屬于B/S模式,服務器的負荷較重,對服務器的要求較高。故選項D描述錯誤。A.該模式屬于B/S模式,無需安裝專門的客戶端應用程序B.應用程序基本上都集中于服務器端C.升級和維護都較方便,極大地降低了成本和工作量D.服務器的負荷較輕,對服務器的要求較低5.小明為水培蔬菜實驗室搭建了環(huán)境溫濕度監(jiān)測系統(tǒng),Web服務器端程序采用Flask Web框架開發(fā),服務器IP為100.168.30.11,端口號為8080,采用GET形式提交數據,各子頁面功能如下表所示:序號 子頁面路徑 功能說明1 / 實時顯示溫度數據2 /set 提交溫濕度數據并返回提示信息3 /data 統(tǒng)計顯示歷史數據(1)若某一時刻傳感器監(jiān)測到環(huán)境溫度值為24.5,濕度值為36,則提交數據至Web服務器的URL為________(單選,填字母)。A.http:∥100.168.30.11:8080/data?temp=24.5&hum=36B.http:∥100.168.30.11:8080/set?temp=24.5&hum=36C.http:∥100.168.30.11:8080/set?24.5&36D.http:∥100.168.30.11:8080/?temp=24.5&hum=36(2)已知系統(tǒng)設有m個監(jiān)測點,服務器能正常接收數據,現抽取某一時刻的一組監(jiān)測值進行異常監(jiān)測。若某監(jiān)測點溫度與室內平均溫度avg的差值超過正數t,即為異常點。各監(jiān)測點編號為1~m,其溫度值存儲于數組元素a[0]~a[m-1]中,檢測并輸出異常點編號的Python程序部分代碼如下,加框處語句有誤,請改正。i=0while i<=m-1;解析 (1)提交溫濕度數據并返回提示信息的路由為set,并要拼接兩個參數。(2)兩數相減有可能出現負數,故需要利用函數abs來進行取絕對值。print(“異常點編號為”,i+1)i=i+1答案 (1)B (2)abs(a[i]-avg)>t6.小王搭建學校閱覽室周邊噪音監(jiān)測系統(tǒng),現要完成服務器端程序的開發(fā)及測試。ⅰ.Web服務器結構圖如圖所示。ⅱ.服務器端程序是基于Python的Flask框架編寫,采用模板功能,根據Web網站需要實現數據顯示。網站功能頁面作用如下表。(1)該網絡架構模式為:____________(選填:“B/S架構”或“C/S架構”)。(2)用Flask框架編寫應用時功能有如下選項,在下表中將代碼對應的“功能”填寫在相應列中。(A.創(chuàng)建應用實例/B.導入Flask模塊/C.啟用Web應用/D.創(chuàng)建路由)代碼 功能from flask import Flask app=Flask(_ _name_ _) @app.route('/ add') app.run() 答案 (1)B/S架構 (2)B A D C解析 (1)C/S架構是客戶端/服務器架構,客戶端主要完成用戶的具體業(yè)務,服務器端則主要提供數據管理、數據共享、系統(tǒng)維護和并發(fā)控制等。必須安裝客戶端軟件才能使用,給應用程序的升級和維護帶來一定的困難。而B/S架構是瀏覽器/服務器架構,B/S架構無需專門的應用程序。通過功能描述,我們可以知道該系統(tǒng)可通過瀏覽器來實現應用功能,而不需要安裝客戶端,故本案例屬于B/S架構。(2)通過閱讀代碼選擇相應的BADC功能。7.小明模擬搭建了“室內煙霧實時監(jiān)控系統(tǒng)”,實現如下功能:(1)利用micro:bit結合煙霧傳感器對室內煙霧濃度進行監(jiān)測。(2)通過串口采集傳感器的數據變化,實時傳輸到Web服務器并保存到數據庫中,以便后續(xù)進行分析。(3)使用者可對監(jiān)測系統(tǒng)進行相關的設置,限定室內煙霧濃度的臨界值。一旦指標高于所限定的臨界值,系統(tǒng)將自動發(fā)出警報并開啟水泵澆水。系統(tǒng)通過智能終端每隔1分鐘采集一次室內環(huán)境煙霧濃度數據。其架構示意圖如圖所示:智能終端的部分程序代碼如下:#設置連接服務器參數并與智能終端建立無線連接,代碼略while True:①________=pin0.read_analog()errno,resp=Obloq.get("input?id=1&val="+str(fog),10000)if errno==200:display.scroll(resp)if resp=='1':pin8.write_digital(1) #打開蜂鳴器發(fā)出警報pin16.write_digital(1) #打開繼電器開啟水泵澆水else:pin8.write_digital(0) #關閉蜂鳴器pin16.write_digital(0) #關閉繼電器else:display.show(str(errno))②________#設置數據采集間隔時間服務器端部分程序代碼如下:from flask import Flask,requestimport sqlite3DATABASE='tdata.db'app=Flask(_ _name_ _)@app.route("/")def index():#代碼略@app.route("/input",methods=["GET"])def mytest():#獲取傳感器id值和環(huán)境煙霧濃度值并存儲在數據庫中#煙霧濃度超過最大值返回“1”,否則返回“0”,代碼略if _ _name_ _=='_ _main_ _':app.run(host="192.168.1.8",port=8080,debug=True)(1)請在程序劃線處填入合適代碼。(2)若某時刻煙霧濃度值是25,根據已知的地址和端口號,則傳輸數據時使用的URL是________(單選,填字母)。A.http:∥192.168.1.8/input?id=1&val=25B.http:∥192.168.1.8:8080/input?val=25C.http:∥192.168.1.8:8080/input?id=1&val=25D.http:∥192.168.1.8/input?val=25(3)服務器端接收傳感器數據的路由對應的視圖函數名為________。解析 (1)每隔1分鐘采集一次室內環(huán)境煙霧濃度數據fog。(2)從表達式Obloq.get(”input?id=1&val=”+str(fog),10000)可以獲知路由和參數。(3)語句def mytest()定義了視圖函數。答案 (1)①fog ②sleep(1000*60) (2)C (3)mytest或mytest()8.小明搭建花房環(huán)境監(jiān)測系統(tǒng)。該系統(tǒng)能通過傳感器獲取花房的溫度及濕度,出現異常時,通過執(zhí)行器發(fā)出警報。用戶通過瀏覽器可查看實時數據及歷史數據,系統(tǒng)結構示意圖如圖所示。請回答下列問題:(1)該系統(tǒng)結構示意圖中,虛線框處應是________(單選,填字母)。(2)小明基于FlaskWeb框架編寫服務器端的程序,部分代碼如下。測試系統(tǒng)時,在瀏覽器地址欄中輸入“http:∥196.168.1.10:5000/”顯示首頁數據,與該URL中路由關聯的視圖函數是________。#導入Flask框架模塊及其他相關模塊,代碼略app=Flask(_ _name_ _)@app.route("/")def index():#從數據庫讀取溫度和濕度數據,并返回頁面,代碼略@app.route("/search")def search():#根據日期查詢相應數據,并返回頁面,代碼略#服務器其他功能,代碼略(3)運行該系統(tǒng),在瀏覽器地址欄中輸入URL訪問系統(tǒng),系統(tǒng)無法正確顯示當前的溫度等數據。簡要說明系統(tǒng)可能造成上述問題的原因______________________________________________________________________________________(本系統(tǒng)中,傳感器等硬件設備及瀏覽器,不會造成上述問題)。(注:回答2項,1項正確得1分)解析 (1)服務器和數據庫之間互相進行數據的交換。(2)語句def index()定義了視圖函數。(3)略。答案 (1)A (2)index (3)①URL網址輸入錯誤 ②Wi-Fi信號出現故障 ③傳感器與智能終端連接出錯 ④路由錯誤 ⑤代碼有誤(比如溫度轉換的公式有誤)或其他合理答案9.(1)小明為學校搭建了環(huán)境噪音監(jiān)測系統(tǒng),該系統(tǒng)的結構示意圖如圖所示。Web服務器端采用Flask框架開發(fā)。傳感器采集的數據由智能終端經IoT模塊發(fā)送到Web服務器,Web服務器將數據保存到數據庫中。若Web服務器對外提供服務的端口是80,智能終端上某編號是2的終端發(fā)送的噪音監(jiān)測值是127,則數據采集子頁面的URL是________。(單選,填字母)A.http:∥127.0.0.1/80?id=2&val=127B.http:∥192.168.113.5/indexC.http:∥192.168.113.5/add?id=2&val=127D.http:∥192.168.113.5/80?id=2&val=127(2)小明的噪音監(jiān)測系統(tǒng)受到了同學們的好評,現在他想再增加一個監(jiān)測環(huán)境氣溫的功能模塊。那么除了添加相應的傳感器,實現相應的數據處理程序等步驟外,數據庫設計上還需要完成哪些步驟?______________________________________________________________________________________________________________________________________。解析 (1)從圖中可以看出采集的路由為add,同時還需要兩個參數。(2) 略。答案 (1)C (2)①增加存放氣溫值的數據表;②設計氣溫數據表的各個字段,如:氣溫值,傳感器編號,獲取時間;③若原數據庫中存在傳感器數據表,則向表中添加新的溫度傳感器信息;④編寫氣溫數據讀寫程序模塊,實現氣溫數據表的存取功能。10.小溫為蘆丁雞飼養(yǎng)箱搭建了溫度監(jiān)測系統(tǒng)。該系統(tǒng)中已選擇的硬件有IoT模塊、智能終端、溫度傳感器、執(zhí)行器(溫度控制器)、服務器等。服務器通過無線網絡與智能終端相連接,智能終端連接傳感器和執(zhí)行器。用戶通過瀏覽器查看數據庫中的數據,在瀏覽器的地址欄中輸入http:∥192.168.0.10:500/query返回查詢結果的功能。能實現上述功能的部分代碼組合是________(單選,填字母)。D① @app.route('/') def query(): #代碼略 ② @app.route('/query')def index():#代碼略③target='192.168.0.10' app.run(host=target,port=5050) ④ target='192.168.0.10:5050'app.run(host=target)A.①③ B.②④ C.①④ D.②③解析 ①路由為query,而不是'/'。④主機地址和端口號應分開寫,注明port參數以及該參數的值為5050。11.小明參觀校史館時發(fā)現展品老化,認為可能與校史館環(huán)境溫濕度有關,搭建校史館環(huán)境監(jiān)測系統(tǒng)以保護展品。小明選擇的硬件有:智能終端、溫濕度傳感器、執(zhí)行器(如LED燈)、服務器等。服務器通過無線網絡連接智能終端,智能終端連接傳感器和執(zhí)行器,實時監(jiān)測并控制校史館內的溫濕度環(huán)境,延緩展品老化,傳承校史文化。請回答下列問題:(1)該系統(tǒng)中關于控制與反饋的流程如下所示,①②③處填空正確的是________。(單選,填字母)A.傳感器 控制器 執(zhí)行器B.控制器 執(zhí)行器 傳感器C.傳感器 執(zhí)行器 控制器D.控制器 傳感器 執(zhí)行器(2)為方便用戶手機APP隨時隨地查看校史館溫度。該系統(tǒng)將要采用的開發(fā)模式為________(單選,填字母;A.B/S架構B.C/S架構)。(3)小明用Flask框架編寫網頁實現“顯示當前溫度”,路由和視圖函數如下所示,在瀏覽器輸入網址是________即可在網頁中顯示當前溫度。#導入Falsk框架模塊及其他相關模塊,代碼略app=Flask(_ _name_ _)server=Server(host="192.168.1.17",port=80,threaded=True)@app.route('/show')def get():#從數據庫讀取最新溫度和濕度到temp、hum并顯示,代碼略答案 (1)B (2)B (3)http:∥192.168.1.17:80/show或http:∥192.168.1.17/show解析 (1)信息系統(tǒng)的閉環(huán)控制,控制器控制執(zhí)行器操作,執(zhí)行器接收控制信息并對受控對象施加控制作用,傳感器獲取外部世界信息。根據圖示可知①為控制器、②為執(zhí)行器、③為傳感器。(2)用戶通過手機APP隨時隨地查看校史館溫度,屬于C/S架構。(3)服務器地址192.168.1.17,端口為80(URL中可省略),路由為“/show”,網址為http:∥192.168.1.17:80/show或http:∥192.168.1.17/show。2.6 網絡應用軟件開發(fā)課時目標1.借助工具與平臺開發(fā)網絡應用軟件。2.掌握網絡架構C/S和B/S的優(yōu)缺點。一、網絡應用開發(fā)概述在選擇開發(fā)平臺前,必須先了解網絡應用軟件的實現架構及不同分類。網絡應用軟件的實現架構有兩種,分別是 和 。 1.客戶端/服務器架構(Client/Server 架構,簡稱 ) (1)概述:它可以充分利用客戶端與服務器端的硬件環(huán)境的優(yōu)勢,將任務合理地分配到客戶端和服務器端。①客戶端:主要完成用戶的具體業(yè)務,如人機交互、數據的輸入與輸出等。②服務器端:主要提供數據管理、數據共享、系統(tǒng)維護和并發(fā)控制等。(2)優(yōu)點:降低了系統(tǒng)的通信開銷和開發(fā)的難度。(3)缺點:客戶端軟件須安裝才能使用,給應用程序的升級和維護帶來一定的困難。C/S架構圖2.瀏覽器/服務器架構(Browser/Server架構,簡稱 ) (1)概述:它是隨著Internet技術的興起,對C/S架構改進后產生的一種軟件系統(tǒng)體系結構。客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現,應用程序基本上都集中于服務器端。(2)優(yōu)點:客戶端無需專門程序,應用程序的升級和維護都可以在服務器端完成,升級和維護都較方便,極大地降低了成本和工作量。(3)缺點:服務器的負荷較重,對服務器的要求較高。B/S架構圖二、網絡應用的規(guī)劃設計1.過程(1)對網絡應用進行詳細的分析。(2)在分析的基礎上確定應用的架構模式,并根據架構模式選擇合適的開發(fā)工具及現有的應用框架,同時明確應用的各個功能模塊。(3)用統(tǒng)一、規(guī)范的圖表和書面語言表達出來。2.舉例:“網絡聊天機器人”應用的規(guī)劃設計(1)應用的目的該應用所要解決的問題是人機對話,輸入數據是人向機器人說出的話語,輸出數據是機器人對話語的合理回應。(2)應用的總體架構因為該應用為網絡應用,只用于實現簡單的人機對話,所以對服務器的要求不高。同時考慮到便于應用的維護和發(fā)布,本應用采用B/S架構,開發(fā)工具及框架選取Python、Flask Web框架及 SQLite數據庫。(3)應用的功能組成根據網絡聊天機器人的功能可以確定該應用的主要功能模塊。另外,網絡應用一般是多用戶并發(fā)使用,所以必須具備用戶登錄注銷功能模塊和用戶聊天記錄等的管理功能模塊。“網絡聊天機器人”功能圖(4)界面設計及代碼實現在確認應用的功能組成后,就可以按各個功能模塊的作用設計出相應的人機交互界面,并在此基礎上完成代碼編制。如登錄注銷功能用于用戶進入和離開機器人聊天室,也即實現用戶身份的認證功能;聊天功能模塊用于實現人機對話過程。三、編寫網絡應用程序AIML:Artificial Intelligence Markup Language,即人工智能標記語言。可以通過導入該模塊解決網絡聊天機器人問題。編寫網絡應用程序首先要確定相應的Web應用框架,在Python中常用的Web應用框架有Flask、Django及Tronado,其中Flask Web框架非常精簡,屬于小型框架。Flask Web 框架具有一個包含基本服務的核心,并且是一個可擴展的框架,很多功能可以通過擴展來實現。它允許開發(fā)者任意挑選符合項目需求的擴展,甚至可以自行開發(fā)。Web應用程序編寫流程1.導入框架模塊導入框架模塊為Web應用程序導入Flask框架及擴展的模塊,以便在程序代碼中使用框架提供的功能,其代碼如下:from flask import Flask #導入Flask框架模塊2.創(chuàng)建應用實例創(chuàng)建應用實例為Web應用程序創(chuàng)建Flask類的對象,即創(chuàng)建一個應用實例,其代碼如下:app=Flask(_ _name_ _)3.編寫路由和視圖函數建立URL到程序代碼的關聯,其代碼如下:@app.route('/') #路由def index():#視圖函數 return'這是我的第一個網頁程序!'當用戶在瀏覽器中向Web服務器發(fā)出請求時,Web服務器會把請求發(fā)送給Flask應用實例,如上面的APP。那么應用實例是如何知道每個URL與哪些Python代碼相關聯并運行的呢 Flask是通過路由和視圖函數的方法來解決這個問題的。上述代碼中的“@ app.route('/')”與“index()”就是一對路由和視圖函數,而路由又與URL相關聯,如網站為www.,當用戶訪問網頁http:∥www./時,則視圖函數index()的代碼就會被運行。具體如圖所示。URL、路由和視圖函數關聯圖4.啟動Web應用其代碼如下:if _ _ name _ _=='_ _main_ _': app.run()在Flask框架中Web服務器是自帶的,調用應用實例APP的run方法就會啟動該集成的開發(fā)Web服務器,服務器啟動后就會進入輪詢狀態(tài),等待用戶訪問并處理用戶請求,直到程序停止。“_ _name_ _=='_ _main_ _'”是確保只有當直接執(zhí)行這個腳本時才啟動開發(fā)Web服務器,如:Python web.py。四、調試發(fā)布程序在編寫過程中會出現錯誤,需要進行調試、修正錯誤。錯誤一般包括兩類:一類是相對簡單的語法錯誤,在程序執(zhí)行時Python會檢查出相應的錯誤并給出修改建議;另一類是相對復雜的邏輯錯誤,需要編程人員仔細研究和分析。調試結束后,在確保應用能正確運行的情況下,才能將其發(fā)布至服務器,供用戶使用。1.調試模式Flask Web框架提供了一個稱為調試模式的功能,只要在開發(fā)配置或程序代碼中設置debug= True就能打開調試功能。注意不要在實際的網站應用環(huán)境,即生產環(huán)境中使用調試模式,否則將會是一個巨大的安全漏洞。那么在實際生產環(huán)境中如果程序出現問題,該如何記錄以備開發(fā)人員檢查呢 開發(fā)人員往往會利用 進行報錯,以及用 進行記錄等調試方法對程序進行查錯及排錯。 2.應用發(fā)布當Web應用程序通過調試并修改完善后投入實際應用,在開發(fā)環(huán)境中我們只需要通過如下命令就可以啟動Web應用,以供他人訪問使用。Python應用程序.py runserver但這是Flask Web框架自帶的開發(fā)Web服務器,它僅供開發(fā)者調試使用,本身不夠強健、安全和高效,同時也沒有顧及實際應用中隨著用戶數量增加而產生的性能問題,因此不適合作為實際生產環(huán)境使用。在實際生產環(huán)境中常見的可靠的Web服務器有很多,如IIS、 Apache、Nginx、Tomcat及WebLogic等,只需將自己編寫的Web應用程序以WSGI應用或CGI形式發(fā)布至相應的Web服務器即可。例1 小明搭建了一個“土壤濕度監(jiān)測系統(tǒng)”,能通過瀏覽器查看實時濕度數據,當濕度小于某閾值時,信息系統(tǒng)自動開啟噴淋設備,大于某閾值時自動關閉噴淋設備。該系統(tǒng)的架構如圖所示:下列說法不正確的是 ( )A.該信息系統(tǒng)采用了B/S架構模式B.該信息系統(tǒng)具備閉環(huán)控制功能C.該信息系統(tǒng)僅傳輸了土壤濕度數據D.網絡是該信息系統(tǒng)中重要的支撐技術聽課筆記:_________________________________________________________________________________________________________________________________________________________變式訓練1 校園一卡通系統(tǒng)能在不同校區(qū)實現食堂就餐、圖書借閱、網上查詢課表和成績等功能,甚至還可以乘公交和地鐵。校園一卡通系統(tǒng)的網絡架構示意圖如下所示。下列說法不正確的是 ( )A.某校區(qū)內部的校園一卡通系統(tǒng)的計算機網絡一般屬于局域網(LAN)B.各消費POS機與各個結算中心之間的數據傳輸必須遵循HTTP協議C.各終端可以通過瀏覽器實現數據查詢、后臺管理等操作,那么該系統(tǒng)屬于B/S架構D.網絡中的數據通信系統(tǒng)主要由傳輸介質和網絡互聯設備等組成例2 小明搭建“室內環(huán)境監(jiān)測系統(tǒng)”,實現如下功能:當室內亮度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器放下窗簾,當窗臺濕度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器關閉窗戶,并且系統(tǒng)將采集到的數據通過室內 Wi-Fi 保存到服務器的數據庫中。系統(tǒng)架構示意圖如圖所示。下列說法不正確是 ( )A.搭建該系統(tǒng)需要配備光線傳感器和濕度傳感器B.該系統(tǒng)的網絡架構為 C/S 架構C.執(zhí)行器可以響應 PC 客戶端的請求D.該系統(tǒng)客戶端可以獲取輸入端傳感器的數據聽課筆記:_________________________________________________________________________________________________________________________________________________________變式訓練2 小王搭建“室內環(huán)境監(jiān)測系統(tǒng)”,實現如下功能:當室內亮度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器放下窗簾,當窗臺濕度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器關閉窗戶,并且系統(tǒng)將采集到的數據通過室內 Wi-Fi保存到服務器的數據庫中。系統(tǒng)架構示意圖如圖所示。下列說法不正確的是 ( )A.搭建該系統(tǒng)需要配備光敏傳感器和濕度傳感器B.該系統(tǒng)運行速度僅取決于硬件的性能C.本系統(tǒng)采用B/S網絡開發(fā)模式進行工作D.該系統(tǒng)客戶端可以通過網絡獲取輸入端傳感器的數據例3 小明使用Flask模塊制作了某信息系統(tǒng)的用戶登錄驗證子系統(tǒng),其各個路由、視圖說明以及實現程序如下所示,請回答相關問題。路由地址 視圖說明/ 系統(tǒng)首頁/user/ 顯示歡迎信息以及用戶對應的信息/system name= xiaoming&password= secretinf 傳遞登錄信息完成驗證后顯示系統(tǒng)管理頁面from flask import Flask, render_template, redirectapp=Flask(_ _name_ _)@app.route("/")def index(): return render_template("index.html")① def login(): #查詢代碼略 if len(cur.fetchall()) >0: #找到用戶的相關信息 return render_template("manage.html", username=usr) else: return redirect('/')@app.route("/user/")def user(name): return "Hello,"+name+"!"if _ _name_ _=="_ _main_ _": app.run(② ) (1)程序第①空是傳遞登錄信息,進行登錄驗證并顯示系統(tǒng)管理頁面的路由與視圖函數,那么該處填寫的語句是 (單選,選填字母)。 [email protected]("/system",methods=["GET"])[email protected]("/login",methods=["GET"])[email protected]("/user",methods=["POST"])[email protected]("/login",methods=["POST","GET"])(2)若該Web服務器的地址是192.168.0.1,運行端口是8080,程序試運行時需打開調試功能,那么第②空應該填寫的語句是 (單選,選填字母)。 A.host="192.168.0.1",port="8080",debug=TrueB.host="http:∥192.168.0.1", port="8080",debug=TrueC.host="http:∥192.168.0.1:8080",debug=TrueD.host="192.168.0.1:8080",port="8080"(3)該程序運行后,在瀏覽器輸入網址http:/192.168.0.1:8080/user/xiaoming,網頁顯示內容為: 聽課筆記:_________________________________________________________________________________________________________________________________________________________變式訓練3 小明開發(fā)了蔬菜生長管理系統(tǒng)由智能終端、溫度傳感器、濕度傳感器、澆水控制器和Iot模塊組成,智能終端通過無線網絡將溫濕度數據上傳到服務器,根據服務器反饋的數據執(zhí)行是否澆水操作,學生可通過手機或電腦瀏覽器查看歷史數據。服務器提交的部分數據和服務器端對應的路由和視圖函數的部分代碼如圖所示。變量名 作用 服務器端部分代碼id 傳感器編號 @app.route('/query') def index():t 溫度d 濕度若當前實時溫度是32,濕度是20,智能終端需要向服務器發(fā)送的URL是http:∥192.168.0.10:5050/① id=1&② 。 下列選項正確的是(單選,填字母) ( )A.①index ②t=20&d=32B.①index ②t=32&d=20C.①query ②t=20&d=32D.①query ②t=32&d=201.下列有關C/S、B/S架構的說法,不正確的是 ( )A.在C/S架構中有專門的數據庫服務器,但還要運行客戶端程序B.在B/S架構中,應用程序部署在服務器端,客戶端通過瀏覽器訪問應用程序C.B/S架構中,客戶端發(fā)送HTTP請求消息傳給服務器,Web應用程序處理請求并把相應的HTML頁面?zhèn)鹘o客戶端D.Web應用是基于C/S架構的,也就是客戶端/服務器架構2.與C/S架構相比,下列選項中不屬于B/S架構優(yōu)點的是 ( )A.界面美觀 B.易于維護C.訪問范圍廣 D.可擴展性好閱讀下列材料,回答第3至4題。 小明使用 Flask Web 框架搭建了一個家庭監(jiān)控報警系統(tǒng)。智能終端通過攝像頭、紅外線傳感器、煙霧傳感器收集數據,當煙霧數據達到一定值,或者紅外線傳感器檢測到有人入侵時,均會向用戶手機發(fā)送短信預警信息,用戶使用手機瀏覽器查看監(jiān)控信息。系統(tǒng)結構示意圖如圖所示。3.下列有關該信息系統(tǒng)的說法不正確的是 ( )A.該信息系統(tǒng)采用了C/S模式架構B.各類傳感器的作用是采集數據C.用戶使用手機瀏覽器可查看實時監(jiān)控信息D.智能終端通過Wi-Fi連接網絡并將數據傳輸到服務器4.當有人經過紅外檢測區(qū)時,傳感器的反饋值會由1變?yōu)?。部分代碼如下:while True: val=pinl.read_digital() #采集紅外傳感器信號 #處理采集到的信號,代碼略 sleep(500)下列說法正確的是 ( )A.智能終端每500秒采集一次數據B.從傳感器獲取的數據為“0”時,用戶會收到預警信息C.紅外傳感器采集的是環(huán)境中的聲音信號D.紅外傳感器采集到的數據使用RFID傳輸到服務器5.小王開發(fā)基于Python的FlaskWeb框架的室內光線強度監(jiān)測信息系統(tǒng),系統(tǒng)程序及相關的子系統(tǒng)都部署在Web服務器端,網站框架如圖所示。該系統(tǒng)的客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現,應用程序基本上都集中于服務器端。(1)由上述材料可知,服務器端的IP地址為 ,該系統(tǒng)的實現架構屬于 (選填:C/S架構、B/S架構)。 (2)實現上述系統(tǒng)的服務器端Python程序如下:#注意:將劃橫線處填寫完整。from flask import Flask,render_template,request#導入Flask庫函數app=Flask(_ _name_ _)@app.route("/")def index():#獲取采集的數據并存儲到列表變量data,代碼略 returnrender_template("vews.html",data=data)@app.route(① ,methods=["GET"]) #數據采集子頁面路由命令 def get(): id=int(request.args.get("id")) #獲取URL中“id=1”后的數據“1” d=float(② ) #變量d存儲采集到的光線數據 #打開數據庫,并將接收的數據存儲到數據庫中,代碼略 return "get data ok"#其他系統(tǒng)子頁面路由,代碼略if _ _name_ _=='_ _main__': app.run(③ ) #啟動Web服務器 6.小張為學校搭建教室監(jiān)測系統(tǒng),該系統(tǒng)能實現監(jiān)測教室的聲音強度,并轉換成分貝值,存入系統(tǒng)數據庫,當分貝值超過閾值60分貝時教室音響發(fā)出提醒或警告。教師通過瀏覽器查看實時監(jiān)測數據。該系統(tǒng)服務器端程序基于FlaskWeb框架編寫,部分代碼如下。#導入Falsk框架模塊及其他相關模塊,代碼略app=Flask(_ _name_ _)@app.route("/jiance")def count(): #根據實時監(jiān)測數據向智能終端發(fā)送指令,代碼略@app.route("/show")def cx(): #從數據庫讀取監(jiān)測數據,并返回查看頁面,代碼略@app.run(host="192.168.10.100",port=8080)用于查看實時監(jiān)測數據,則瀏覽器端應訪問的URL是http:∥ 。 7.為了幫助學校更好開展科技文化節(jié)報名工作,小王設計了一個網上報名系統(tǒng),用戶通過瀏覽器在相應頁面進行登錄、報名、查詢等操作。該系統(tǒng)服務器端程序采用FlaskWeb框架編寫,框架結構如圖所示。(1)小王填寫報名參賽項目,應訪問子頁面的URL是:http:∥ 。 (2)服務器端登錄頁面部分代碼如下,請在劃線處填入合適的代碼。def check(username,password): #驗證用戶名username、密碼password,若正確返回True,否則返回False,代碼略app=Flask(_ _name_ _)@app.route("/log",methods=["GET","POST"])def reg(): name=request.form.get("xm") #獲取用戶名 pwd=request.form.get("psd") #獲取密碼 if : return "登錄成功!" else: return "請重新登錄!"(3)下列關于該信息系統(tǒng)的描述,正確的是 (多選,填字母)。(注:全部選對的得2分,選對但不全的得1分,不選或有選錯的得0分) A.實現登錄功能的視圖函數名稱為logB.該系統(tǒng)網絡應用軟件的實現架構是B/S架構C.在服務器主機上無法實現登錄、報名、查詢等操作D.服務器采用POST方式接收用戶名和密碼數據8.某大學研究小組使用FlaskWeb框架開發(fā)了簡易版“智能雨刷”測試系統(tǒng),它可以利用傳感器獲取雨量數據,對傳感器收集的數據分析后,根據給定的閾值自動控制雨刷器運行。系統(tǒng)的架構圖如圖所示,請回答下列問題:智能雨刷測試系統(tǒng)的智能終端和服務器的程序代碼如下:#服務器端的部分程序代碼import sqlite3from flask import Flask,requestapp=Flask(_ _name_ _)@app.route("① ",methods=["GET"]) def add_data(): rain=int(request.args.get("rain")) #用戶設置的閾值300賦值給max,代碼略 if rain>max: return 1 else: return 0if _ _name_ _=="_ _main_ _": app.run(host="192.168.1.233",port=5050)#智能終端的部分程序代碼IP="192.168.1.233";PORT="5050";SSID="JF501";PASSWORD="JF123456"#定義IoT模塊和micro:bit開發(fā)板串口通信參數、IoT模塊連接Wi-Fi等代碼略#micro:bit和服務器建立連接相關代碼略while True: rain=pin0.read_analog() errno,resp=Obloq.get("sr rain="+str(rain),10000) if errno==200: display.show(str(resp)) if resp==1: pin12.write_digital(1) else: pin12.write_digital(0) sleep(5000)(1)①請在劃線處填入合適的代碼。②智能終端根據resp值的情況控制雨刷器的工作狀態(tài),resp的值來自 (單選,填字母:A.傳感器采集/B.服務器返回/C.智能終端分析得出)。 (2)請通過增加傳感器和執(zhí)行器(或使用汽車已有的執(zhí)行器)對該系統(tǒng)功能進行一項擴展,寫出傳感器和執(zhí)行器的名稱,并描述實現的功能:_______________________________________________。9.某網站對信息進行加密解密,選擇頁面“index.html”如圖a,加密頁面“jia.html”如圖b,解密頁面“jie.html”如圖c。在選擇頁面點擊相應按鈕,選擇加密或解密。選擇加密時,在明文文本框中輸入明文,點擊“加密”按鈕,網頁顯示密文與對應的密鑰。加密規(guī)則為打亂明文對應的索引作為密鑰,再利用該索引逐個取明文字符連接成密文,例如:明文為“信息技術”,若被打亂的索引為[2,0,1,3],則密文為“技信息術”,密鑰為“2,0,1,3”。選擇解密時,在密文文本框中輸入密文,密鑰文本框輸入密鑰,點擊“解密”按鈕,網頁顯示明文。(1)該網絡應用屬于架構 。(單選,填字母:A.B/S架構,B.C/S架構) (2)若待解密文本為“自息愛信也我己愛”,密鑰為“2,7,1,6,4,0,3,5”,則解密結果是 。 (3)實現該功能的Python程序如下,請在劃線處填入合適的代碼:from flask import render_template,request,Flaskimport randomapp=Flask(_ _name_ _) #創(chuàng)建應用實例@app.route('/') #選擇頁面路由def index(): return render_template('① ') #加密功能代碼略,以下為解密代碼@app.route('/jiemi1/',methods=["GET","POST"])def jiemi1(): wb=request.form["wb"] #變量 wb 存儲密文,變量 keyo 存儲密鑰 keyo=request.form["key"] #利用 request 獲取網頁文本框內容,返回示例:“2,0,1,3” keyn=list(map(int,keyo.split(",")))#將字符串keyo轉換為數值列表,示例:[2,0,1,3] result="" for i in range(len(keyn)): for j in range(len(keyn)): if ② : break result+=wb[j] return render_template("jie.html",WB=wb,KEY=keyo,RESULT=result)if _ _name_ _=="_ _main_ _": ③ 2.6 網絡應用軟件開發(fā)知識梳理一、客戶端/服務器架構 瀏覽器/服務器架構1.C/S架構2.B/S架構四、1.電子郵件來發(fā)送程序運行的錯誤信息 日志文件例題精析例1 C [本題考查信息系統(tǒng)的搭建。A選項Web服務器提供網頁瀏覽服務,因此是B/S架構。B選項圖中傳感器來獲取信息,通過服務器進行處理,并采用執(zhí)行器輸出,具備閉環(huán)控制功能。C選項傳感器傳輸的是土壤濕度,但信息系統(tǒng)在工作時,肯定還要傳輸控制信息等。D選項網絡可以將地理位置不同、功能獨立的多個計算機系統(tǒng)互聯起來,因此是信息系統(tǒng)的重要支撐技術。]變式訓練1 B [本題考查信息系統(tǒng)中網絡技術相關知識。若消費POS機與各個結算中心之間的所有數據都是基于B/S模式的,那么他們間的數據傳送基本需要HTTP協議完成。但除了B/S模式以外還有很多其他傳送模式,比如C/S或者點對點,這些就無需HTTP協議。從目前系統(tǒng)看,數據傳輸基本都需要遵循TCP/IP協議。]例2 B [本題考查網絡程序開發(fā)。A選項當室內亮度和濕度達到系統(tǒng)設定的閾值時,執(zhí)行器開始工作,因此需要這兩樣傳感器。B選項題目中采用Web服務器,可知為B/S架構。C選項執(zhí)行器響應PC客戶端請求,執(zhí)行相應的動作。]變式訓練2 B [本題綜合考查信息系統(tǒng)知識。選項ACD均正確。該系統(tǒng)運行速度取決于軟件及硬件的綜合性能。]例3 (1)A (2)A (3)Hello, xiaoming!解析 本題考查使用Flask搭建Web應用程序的相關知識。(1)考查路由地址和視圖函數知識。由題中的路由表可知,路由地址是/system,注意路由地址與視圖函數名稱無關(可以不相同,但要寫一起),而視圖函數中獲取數據的方式由request.args中獲取,因此視圖函數的methods參數值必須要有“GET”值方可。(2)考查Web應用程序啟動的參數設定知識。應用程序對象的run()函數中的host參數指明了對外提供的服務器IP地址,注意,只需寫IP地址即可,不能加協議和端口,而port參數才是指明端口的參數,debug參數可以設置是否啟用調試模式。(3)考查了帶參數的路由地址方式,路由中的是一個變量,可以接受路由地址中的參數值,因此“/user/xiaoming”中user是路由,xiaoming是參數值,因此輸出Hello,xiaoming!。變式訓練3 D [如題圖所示數據,得到URL為:http:∥192.168.0.10:5050/query id=1&t=32&d=20。]隨堂檢測1.D [Web應用是基于B/S架構的,即瀏覽器/服務器架構。]2.A [選項BCD均是B/S架構的優(yōu)點,而界面美觀的特點不是本質特點。]3.A [A選項觀察圖片可知該用戶通過瀏覽器查看監(jiān)控信息,因此該系統(tǒng)采用了B/S模式架構。]4.B [A選項該智能終端每500毫秒采集一次數據;B選項“當有人經過紅外檢測區(qū)時,傳感器的反饋值會由1變?yōu)?”,B選項正確;C選項紅外傳感器采集的是環(huán)境中的模擬信號,再處理成可以處理的數字信號;D選項紅外傳感器采集到的數據傳輸到服務器的方式很多如無線網絡、藍牙、串口等。]5.(1)192.168.1.100 B/S架構(2)①"/s" ②request.args.get("d")③host="192.168.1.100",port=5000解析 本題考查網絡應用程序的開發(fā)。(1)從題圖中可知IP地址,系統(tǒng)程序及相關的子系統(tǒng)都部署在Web服務器端,因此屬于B/S架構。(2)①數據采集子頁面路由,從圖中可知路由為“s”。②變量d存儲采集到的光線數據,再參照上一條語句,可以得到答案。③略。6.192.168.10.100:8080/show解析 從數據庫讀取監(jiān)測數據的路由為show。7.(1)192.168.10.120:8080/project (2)check(name,pwd) (3)BD解析 (1)報名參數的路由為project。(2)先獲取用戶名name和密碼pwd,再調用函數check來檢測用戶名和密碼是否正確。(3)A選項實現登錄功能的路由名稱為log。B選項采用瀏覽器連接,屬于B/S架構。C選項服務器也同時可以用作客戶端。D選項從語句request.form可知為POST方式。8.(1)①/sr ②B (2)在車內增加濕度傳感器和除濕器,當濕度大于閾值時,除濕器將會啟動除濕功能;在車內增加溫度傳感器,當溫度大于閾值時,空調將會啟動制冷功能或其他有效答案解析 (1)智能終端部分代碼errno,resp=Obloq.get("sr rain="+str(rain),10000)可知,傳遞參數的URL路由為/sr,變量為rain,雨量傳感器檢測到雨量,通過IOT模塊將雨量用URL的形式傳輸給服務器,服務器返回相應的狀態(tài)碼errno和返回值resp。(2)略。9.(1)A (2)我愛自己也愛信息 (3)①index.html ②keyn[j]==i ③app.run()解析 本題考查網絡程序的開發(fā)。(1)通過瀏覽器進行信息傳遞,屬于B/S架構。(2)根據密鑰,找到索引位置為52064731,可以得到解密結果。(3)①從題圖a中可知,主頁名省略,默認為index.html。②找到相對所在的索引位置j。③啟動服務器。 展開更多...... 收起↑ 資源列表 2.6 網絡應用軟件開發(fā).docx 2.6 網絡應用軟件開發(fā).pptx 縮略圖、資源來源于二一教育資源庫