2.6 网络应用软件开发(学案(含答案) 课件)

资源下载
  1. 二一教育资源

2.6 网络应用软件开发(学案(含答案) 课件)

资源简介

(共83张PPT)
2.6 网络应用软件开发
第二章 信息系统的支撑技术
1.借助工具与平台开发网络应用软件。2.掌握网络架构C/S和B/S的优缺点。
目 录
CONTENTS
知识梳理
01
例题精析
02
随堂检测
03
课时作业
04
知识梳理
1
一、网络应用开发概述
在选择开发平台前,必须先了解网络应用软件的实现架构及不同分类。网络应用软件的实现架构有两种,分别是__________________和__________________。
1.客户端/服务器架构(Client/Server 架构,简称____________)
(1)概述:它可以充分利用客户端与服务器端的硬件环境的优势,将任务合理地分配到客户端和服务器端。
①客户端:主要完成用户的具体业务,如人机交互、数据的输入与输出等。
②服务器端:主要提供数据管理、数据共享、系统维护和并发控制等。
客户端/服务器架构
浏览器/服务器架构
C/S架构
(2)优点:降低了系统的通信开销和开发的难度。
(3)缺点:客户端软件须安装才能使用,给应用程序的升级和维护带来一定的困难。
C/S架构图
2.浏览器/服务器架构(Browser/Server架构,简称____________)
(1)概述:它是随着Internet技术的兴起,对C/S架构改进后产生的一种软件系统体系结构。客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(2)优点:客户端无需专门程序,应用程序的升级和维护都可以在服务器端完成,升级和维护都较方便,极大地降低了成本和工作量。
(3)缺点:服务器的负荷较重,对服务器的要求较高。
B/S架构图
B/S架构
二、网络应用的规划设计
1.过程
(1)对网络应用进行详细的分析。
(2)在分析的基础上确定应用的架构模式,并根据架构模式选择合适的开发工具及现有的应用框架,同时明确应用的各个功能模块。
(3)用统一、规范的图表和书面语言表达出来。
2.举例:“网络聊天机器人”应用的规划设计
(1)应用的目的
该应用所要解决的问题是人机对话,输入数据是人向机器人说出的话语,输出数据是机器人对话语的合理回应。
(2)应用的总体架构
因为该应用为网络应用,只用于实现简单的人机对话,所以对服务器的要求不高。同时考虑到便于应用的维护和发布,本应用采用B/S架构,开发工具及框架选取Python、Flask Web框架及 SQLite数据库。
(3)应用的功能组成
根据网络聊天机器人的功能可以确定该应用的主要功能模块。另外,网络应用一般是多用户并发使用,所以必须具备用户登录注销功能模块和用户聊天记录等的管理功能模块。
“网络聊天机器人”功能图
(4)界面设计及代码实现
在确认应用的功能组成后,就可以按各个功能模块的作用设计出相应的人机交互界面,并在此基础上完成代码编制。如登录注销功能用于用户进入和离开机器人聊天室,也即实现用户身份的认证功能;聊天功能模块用于实现人机对话过程。
三、编写网络应用程序
AIML:Artificial Intelligence Markup Language,即人工智能标记语言。可以通过导入该模块解决网络聊天机器人问题。
编写网络应用程序首先要确定相应的Web应用框架,在Python中常用的Web应用框架有Flask、Django及Tronado,其中Flask Web框架非常精简,属于小型框架。Flask Web 框架具有一个包含基本服务的核心,并且是一个可扩展的框架,很多功能可以通过扩展来实现。它允许开发者任意挑选符合项目需求的扩展,甚至可以自行开发。
Web应用程序编写流程
1.导入框架模块
导入框架模块为Web应用程序导入Flask框架及扩展的模块,以便在程序代码中使用框架提供的功能,其代码如下:
from flask import Flask #导入Flask框架模块
2.创建应用实例
创建应用实例为Web应用程序创建Flask类的对象,即创建一个应用实例,其代码如下:
app=Flask(_ _name_ _)
3.编写路由和视图函数
建立URL到程序代码的关联,其代码如下:
@app.route('/')    #路由
def index(): #视图函数
return'

这是我的第一个网页程序!

'
当用户在浏览器中向Web服务器发出请求时,Web服务器会把请求发送给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方法就会启动该集成的开发Web服务器,服务器启动后就会进入轮询状态,等待用户访问并处理用户请求,直到程序停止。“_ _name_ _=='_ _main_ _'”是确保只有当直接执行这个脚本时才启动开发Web服务器,如:Python web.py。
四、调试发布
程序在编写过程中会出现错误,需要进行调试、修正错误。错误一般包括两类:一类是相对简单的语法错误,在程序执行时Python会检查出相应的错误并给出修改建议;另一类是相对复杂的逻辑错误,需要编程人员仔细研究和分析。调试结束后,在确保应用能正确运行的情况下,才能将其发布至服务器,供用户使用。
1.调试模式
Flask Web框架提供了一个称为调试模式的功能,只要在开发配置或程序代码中设置debug= True就能打开调试功能。
注意不要在实际的网站应用环境,即生产环境中使用调试模式,否则将会是一个巨大的安全漏洞。那么在实际生产环境中如果程序出现问题,该如何记录以备开发人员检查呢?开发人员往往会利用_________________________________进行报错,以及用__________进行记录等调试方法对程序进行查错及排错。
电子邮件来发送程序运行的错误信息
日志文件
2.应用发布
当Web应用程序通过调试并修改完善后投入实际应用,在开发环境中我们只需要通过如下命令就可以启动Web应用,以供他人访问使用。
Python应用程序.py runserver
但这是Flask Web框架自带的开发Web服务器,它仅供开发者调试使用,本身不够强健、安全和高效,同时也没有顾及实际应用中随着用户数量增加而产生的性能问题,因此不适合作为实际生产环境使用。在实际生产环境中常见的可靠的Web服务器有很多,如IIS、 Apache、Nginx、Tomcat及WebLogic等,只需将自己编写的Web应用程序以WSGI应用或CGI形式发布至相应的Web服务器即可。
例题精析
2
例1 小明搭建了一个“土壤湿度监测系统”,能通过浏览器查看实时湿度数据,当湿度小于某阈值时,信息系统自动开启喷淋设备,大于某阈值时自动关闭喷淋设备。该系统的架构如图所示:
C
A.该信息系统采用了B/S架构模式  B.该信息系统具备闭环控制功能
C.该信息系统仅传输了土壤湿度数据 D.网络是该信息系统中重要的支撑技术
解析 本题考查信息系统的搭建。A选项Web服务器提供网页浏览服务,因此是B/S架构。B选项图中传感器来获取信息,通过服务器进行处理,并采用执行器输出,具备闭环控制功能。C选项传感器传输的是土壤湿度,但信息系统在工作时,肯定还要传输控制信息等。D选项网络可以将地理位置不同、功能独立的多个计算机系统互联起来,因此是信息系统的重要支撑技术。
A.某校区内部的校园一卡通系统的计算机网络一般属于局域网(LAN)
B.各消费POS机与各个结算中心之间的数据传输必须遵循HTTP协议
C.各终端可以通过浏览器实现数据查询、后台管理等操作,那么该系统属于B/S架构
D.网络中的数据通信系统主要由传输介质和网络互联设备等组成
B
解析 本题考查信息系统中网络技术相关知识。若消费POS机与各个结算中心之间的所有数据都是基于B/S模式的,那么他们间的数据传送基本需要HTTP协议完成。但除了B/S模式以外还有很多其他传送模式,比如C/S或者点对点,这些就无需HTTP协议。从目前系统看,数据传输基本都需要遵循TCP/IP协议。
A.搭建该系统需要配备光线传感器和湿度传感器
B.该系统的网络架构为 C/S 架构
C.执行器可以响应 PC 客户端的请求
D.该系统客户端可以获取输入端传感器的数据
B
解析 本题考查网络程序开发。A选项当室内亮度和湿度达到系统设定的阈值时,执行器开始工作,因此需要这两样传感器。B选项题目中采用Web服务器,可知为B/S架构。C选项执行器响应PC客户端请求,执行相应的动作。
A.搭建该系统需要配备光敏传感器和湿度传感器
B.该系统运行速度仅取决于硬件的性能
C.本系统采用B/S网络开发模式进行工作
D.该系统客户端可以通过网络获取输入端传感器的数据
B
解析 本题综合考查信息系统知识。选项ACD均正确。该系统运行速度取决于软件及硬件的综合性能。
例3 小明使用Flask模块制作了某信息系统的用户登录验证子系统,其各个路由、视图说明以及实现程序如下所示,请回答相关问题。
路由地址 视图说明
/ 系统首页
/user/ 显示欢迎信息以及用户对应的信息
/system?name=xiaoming&password=secretinf 传递登录信息完成验证后显示系统管理页面
from flask import Flask, render_template, redirect
app=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)程序第①空是传递登录信息,进行登录验证并显示系统管理页面的路由与视图函数,那么该处填写的语句是____________(单选,选填字母)。
A.@app.route("/system",methods=["GET"])
B.@app.route("/login",methods=["GET"])
C.@app.route("/user",methods=["POST"])
D.@app.route("/login",methods=["POST","GET"])
(2)若该Web服务器的地址是192.168.0.1,运行端口是8080,程序试运行时需打开调试功能,那么第②空应该填写的语句是__________(单选,选填字母)。
A.host="192.168.0.1",port="8080",debug=True
B.host="http:∥192.168.0.1", port="8080",debug=True
C.host="http:∥192.168.0.1:8080",debug=True
D.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 小明开发了蔬菜生长管理系统由智能终端、温度传感器、湿度传感器、浇水控制器和Iot模块组成,智能终端通过无线网络将温湿度数据上传到服务器,根据服务器反馈的数据执行是否浇水操作,学生可通过手机或电脑浏览器查看历史数据。服务器提交的部分数据和服务器端对应的路由和视图函数的部分代码如图所示。
变量名 作用 服务器端部分代码
id 传感器编号 @app.route('/query')
def index():
t 温度
d 湿度
若当前实时温度是32,湿度是20,智能终端需要向服务器发送的URL是http:∥192.168.0.10:5050/①________?id=1&②________。
下列选项正确的是(单选,填字母)(  )
A.①index ②t=20&d=32 B.①index ②t=32&d=20
C.①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
随堂检测
3
A.在C/S架构中有专门的数据库服务器,但还要运行客户端程序
B.在B/S架构中,应用程序部署在服务器端,客户端通过浏览器访问应用程序
C.B/S架构中,客户端发送HTTP请求消息传给服务器,Web应用程序处理请求并把相应的HTML页面传给客户端
D.Web应用是基于C/S架构的,也就是客户端/服务器架构
D
解析 Web应用是基于B/S架构的,即浏览器/服务器架构。
A.界面美观 B.易于维护
C.访问范围广 D.可扩展性好
A
解析 选项BCD均是B/S架构的优点,而界面美观的特点不是本质特点。
阅读下列材料,回答第 3至4题。
小明使用 Flask Web 框架搭建了一个家庭监控报警系统。智能终端通过摄像头、红外线传感器、烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送短信预警信息,用户使用手机浏览器查看监控信息。系统结构示意图如图所示。
A.该信息系统采用了C/S模式架构
B.各类传感器的作用是采集数据
C.用户使用手机浏览器可查看实时监控信息
D.智能终端通过Wi-Fi连接网络并将数据传输到服务器
A
解析 A选项观察图片可知该用户通过浏览器查看监控信息,因此该系统采用了B/S模式架构。
4.当有人经过红外检测区时,传感器的反馈值会由1变为0。部分代码如下:
B
while True: 
val=pinl.read_digital() #采集红外传感器信号
#处理采集到的信号,代码略
sleep(500)
下列说法正确的是(  )
A.智能终端每500秒采集一次数据
B.从传感器获取的数据为“0”时,用户会收到预警信息
C.红外传感器采集的是环境中的声音信号
D.红外传感器采集到的数据使用RFID传输到服务器
解析 A选项该智能终端每500毫秒采集一次数据;B选项“当有人经过红外检测区时,传感器的反馈值会由1变为0”,B选项正确;C选项红外传感器采集的是环境中的模拟信号,再处理成可以处理的数字信号;D选项红外传感器采集到的数据传输到服务器的方式很多如无线网络、蓝牙、串口等。
5.小王开发基于Python的FlaskWeb框架的室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(1)由上述材料可知,服务器端的IP地址为________,该系统的实现架构属于________(选填:C/S架构、B/S架构)。
(2)实现上述系统的服务器端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"
#其他系统子页面路由,代码略
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
解析 本题考查网络应用程序的开发。(1)从题图中可知IP地址,系统程序及相关的子系统都部署在Web服务器端,因此属于B/S架构。(2)①数据采集子页面路由,从图中可知路由为“s”。②变量d存储采集到的光线数据,再参照上一条语句,可以得到答案。③略。
6.小张为学校搭建教室监测系统,该系统能实现监测教室的声音强度,并转换成分贝值,存入系统数据库,当分贝值超过阈值60分贝时教室音响发出提醒或警告。教师通过浏览器查看实时监测数据。该系统服务器端程序基于FlaskWeb框架编写,部分代码如下。
#导入Falsk框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/jiance")
def count():
#根据实时监测数据向智能终端发送指令,代码略
@app.route("/show")
def cx():
#从数据库读取监测数据,并返回查看页面,代码略@app.run(host="192.168.10.100",port=8080)
用于查看实时监测数据,则浏览器端应访问的URL是http:∥________。
答案 192.168.10.100:8080/show
解析 从数据库读取监测数据的路由为show。
7.为了帮助学校更好开展科技文化节报名工作,小王设计了一个网上报名系统,用户通过浏览器在相应页面进行登录、报名、查询等操作。该系统服务器端程序采用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)下列关于该信息系统的描述,正确的是________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.实现登录功能的视图函数名称为log
B.该系统网络应用软件的实现架构是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框架开发了简易版“智能雨刷”测试系统,它可以利用传感器获取雨量数据,对传感器收集的数据分析后,根据给定的阈值自动控制雨刷器运行。系统的架构图如图所示,请回答下列问题:
智能雨刷测试系统的智能终端和服务器的程序代码如下:
#服务器端的部分程序代码
import sqlite3
from flask import Flask,request
app=Flask(_ _name_ _)
@app.route("①________",methods=["GET"])
def add_data():
rain=int(request.args.get("rain"))
#用户设置的阈值300赋值给max,代码略
if rain>max:
return 1
else:
return 0
if _ _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开发板串口通信参数、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值的情况控制雨刷器的工作状态,resp的值来自________(单选,填字母:A.传感器采集/B.服务器返回/C.智能终端分析得出)。
(2)请通过增加传感器和执行器(或使用汽车已有的执行器)对该系统功能进行一项扩展,写出传感器和执行器的名称,并描述实现的功能:_______________
____________________________________________________________________。
答案 (1)①/sr ②B (2)在车内增加湿度传感器和除湿器,当湿度大于阈值时,除湿器将会启动除湿功能;在车内增加温度传感器,当温度大于阈值时,空调将会启动制冷功能或其他有效答案
解析 (1)智能终端部分代码errno,resp=Obloq.get("sr?rain="+str(rain),10000)可知,传递参数的URL路由为/sr,变量为rain,雨量传感器检测到雨量,通过IOT模块将雨量用URL的形式传输给服务器,服务器返回相应的状态码errno和返回值resp。(2)略。
9.某网站对信息进行加密解密,选择页面“index.html”如图a,加密页面“jia.html”如图b,解密页面“jie.html”如图c。在选择页面点击相应按钮,选择加密或解密。
选择加密时,在明文文本框中输入明文,点击“加密”按钮,网页显示密文与对应的密钥。加密规则为打乱明文对应的索引作为密钥,再利用该索引逐个取明文字符连接成密文,例如:明文为“信息技术”,若被打乱的索引为[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,Flask
import random
app=Flask(_ _name_ _) #创建应用实例
@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_ _":
③________
答案 (1)A (2)我爱自己也爱信息 
(3)①index.html ②keyn[j]==i ③app.run()
解析 本题考查网络程序的开发。(1)通过浏览器进行信息传递,属于B/S架构。(2)根据密钥,找到索引位置为52064731,可以得到解密结果。(3)①从题图a中可知,主页名省略,默认为index.html。②找到相对所在的索引位置j。③启动服务器。
4
课时作业
1.关于网络应用软件的实现架构,说法正确的是(  )
C
解析 本题考查的是网络应用开发概述。A选项中网络应用软件的实现架构有两种;B选项中降低了系统的通信开销和开发的难度是客户端/服务器架构的优点;C选项正确;D选项B/S架构是随着Internet技术的兴起,对C/S架构改进后产生的一种软件系统体系结构。
A.网络应用软件的实现架构有三种
B.浏览器/服务器架构的优点是降低了系统的通信开销和开发的难度
C.C/S服务器端主要提供数据管理、数据共享、系统维护和并发控制等
D.C/S是对B/S架构改进后产生的一种软件系统体系结构
2.在编写Flask网络应用程序时需完成以下操作,下列操作属于创建应用实例的是(  )
B
A.from flask import Flask
B.app=Flask(_ _name_ _)
C.@app.route('/')
D.app.run()
3.客户端无需专门的应用程序,具有这一特点的网络架构是(  )
C
解析 本题考查的是网络应用开发概述。浏览器/服务器架构,简称B/S架构,其优点是升级和维护很方便。
A.C/S架构 B.C/C架构
C.B/S架构 D.B/C架构
4.如图所示是某信息系统的网络架构图:
D
解析 本题考查网络开发模式。由于有Web服务器,因此该模式属于B/S模式,服务器的负荷较重,对服务器的要求较高。故选项D描述错误。
A.该模式属于B/S模式,无需安装专门的客户端应用程序
B.应用程序基本上都集中于服务器端
C.升级和维护都较方便,极大地降低了成本和工作量
D.服务器的负荷较轻,对服务器的要求较低
5.小明为水培蔬菜实验室搭建了环境温湿度监测系统,Web服务器端程序采用Flask Web框架开发,服务器IP为100.168.30.11,端口号为8080,采用GET形式提交数据,各子页面功能如下表所示:
序号 子页面路径 功能说明
1 / 实时显示温度数据
2 /set 提交温湿度数据并返回提示信息
3 /data 统计显示历史数据
(1)若某一时刻传感器监测到环境温度值为24.5,湿度值为36,则提交数据至Web服务器的URL为________(单选,填字母)。
A.http:∥100.168.30.11:8080/data?temp=24.5&hum=36
B.http:∥100.168.30.11:8080/set?temp=24.5&hum=36
C.http:∥100.168.30.11:8080/set?24.5&36
D.http:∥100.168.30.11:8080/?temp=24.5&hum=36
(2)已知系统设有m个监测点,服务器能正常接收数据,现抽取某一时刻的一组监测值进行异常监测。若某监测点温度与室内平均温度avg的差值超过正数t,即为异常点。各监测点编号为1~m,其温度值存储于数组元素a[0]~a[m-1]中,检测并输出异常点编号的Python程序部分代码如下,加框处语句有误,请改正。
i=0
while i<=m-1;
解析 (1)提交温湿度数据并返回提示信息的路由为set,并要拼接两个参数。(2)两数相减有可能出现负数,故需要利用函数abs来进行取绝对值。
print(“异常点编号为”,i+1)
i=i+1
答案 (1)B (2)abs(a[i]-avg)>t
6.小王搭建学校阅览室周边噪音监测系统,现要完成服务器端程序的开发及测试。
ⅰ.Web服务器结构图如图所示。
ⅱ.服务器端程序是基于Python的Flask框架编写,采用模板功能,根据Web网站需要实现数据显示。网站功能页面作用如下表。
(1)该网络架构模式为:____________(选填:“B/S架构”或“C/S架构”)。
(2)用Flask框架编写应用时功能有如下选项,在下表中将代码对应的“功能”填写在相应列中。(A.创建应用实例/B.导入Flask模块/C.启用Web应用/D.创建路由)
代码 功能
from flask import Flask
app=Flask(_ _name_ _)
@app.route('/ add')
app.run()
答案 (1)B/S架构 (2)B A D C
解析 (1)C/S架构是客户端/服务器架构,客户端主要完成用户的具体业务,服务器端则主要提供数据管理、数据共享、系统维护和并发控制等。必须安装客户端软件才能使用,给应用程序的升级和维护带来一定的困难。而B/S架构是浏览器/服务器架构,B/S架构无需专门的应用程序。通过功能描述,我们可以知道该系统可通过浏览器来实现应用功能,而不需要安装客户端,故本案例属于B/S架构。(2)通过阅读代码选择相应的BADC功能。
7.小明模拟搭建了“室内烟雾实时监控系统”,实现如下功能:
(1)利用micro:bit结合烟雾传感器对室内烟雾浓度进行监测。
(2)通过串口采集传感器的数据变化,实时传输到Web服务器并保存到数据库中,以便后续进行分析。
(3)使用者可对监测系统进行相关的设置,限定室内烟雾浓度的临界值。一旦指标高于所限定的临界值,系统将自动发出警报并开启水泵浇水。
系统通过智能终端每隔1分钟采集一次室内环境烟雾浓度数据。其架构示意图如图所示:
智能终端的部分程序代码如下:
#设置连接服务器参数并与智能终端建立无线连接,代码略
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) #打开蜂鸣器发出警报
pin16.write_digital(1) #打开继电器开启水泵浇水
else:
pin8.write_digital(0) #关闭蜂鸣器
pin16.write_digital(0) #关闭继电器
else:
display.show(str(errno))
②________
#设置数据采集间隔时间服务器端部分程序代码如下:
from flask import Flask,request
import sqlite3
DATABASE='tdata.db'
app=Flask(_ _name_ _)
@app.route("/")
def index():
#代码略
@app.route("/input",methods=["GET"])
def mytest():
#获取传感器id值和环境烟雾浓度值并存储在数据库中
#烟雾浓度超过最大值返回“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=25
B.http:∥192.168.1.8:8080/input?val=25
C.http:∥192.168.1.8:8080/input?id=1&val=25
D.http:∥192.168.1.8/input?val=25
(3)服务器端接收传感器数据的路由对应的视图函数名为________。
解析 (1)每隔1分钟采集一次室内环境烟雾浓度数据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.小明搭建花房环境监测系统。该系统能通过传感器获取花房的温度及湿度,出现异常时,通过执行器发出警报。用户通过浏览器可查看实时数据及历史数据,系统结构示意图如图所示。请回答下列问题:
(1)该系统结构示意图中,虚线框处应是________(单选,填字母)。
(2)小明基于FlaskWeb框架编写服务器端的程序,部分代码如下。测试系统时,在浏览器地址栏中输入“http:∥196.168.1.10:5000/”显示首页数据,与该URL中路由关联的视图函数是________。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/")
def index():
#从数据库读取温度和湿度数据,并返回页面,代码略
@app.route("/search")
def search():
#根据日期查询相应数据,并返回页面,代码略
#服务器其他功能,代码略
(3)运行该系统,在浏览器地址栏中输入URL访问系统,系统无法正确显示当前的温度等数据。简要说明系统可能造成上述问题的原因___________________
___________________________________________________________________
(本系统中,传感器等硬件设备及浏览器,不会造成上述问题)。(注:回答2项,1项正确得1分)
解析 (1)服务器和数据库之间互相进行数据的交换。(2)语句def index()定义了视图函数。(3)略。
答案 (1)A (2)index (3)①URL网址输入错误 ②Wi-Fi信号出现故障 ③传感器与智能终端连接出错 ④路由错误 ⑤代码有误(比如温度转换的公式有误)或其他合理答案
9.(1)小明为学校搭建了环境噪音监测系统,该系统的结构示意图如图所示。Web服务器端采用Flask框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,Web服务器将数据保存到数据库中。若Web服务器对外提供服务的端口是80,智能终端上某编号是2的终端发送的噪音监测值是127,则数据采集子页面的URL是________。(单选,填字母)
A.http:∥127.0.0.1/80?id=2&val=127
B.http:∥192.168.113.5/index
C.http:∥192.168.113.5/add?id=2&val=127
D.http:∥192.168.113.5/80?id=2&val=127
(2)小明的噪音监测系统受到了同学们的好评,现在他想再增加一个监测环境气温的功能模块。那么除了添加相应的传感器,实现相应的数据处理程序等步骤外,数据库设计上还需要完成哪些步骤?
___________________________________________________________________
___________________________________________________________________。
解析 (1)从图中可以看出采集的路由为add,同时还需要两个参数。(2) 略。
答案 (1)C (2)①增加存放气温值的数据表;②设计气温数据表的各个字段,如:气温值,传感器编号,获取时间;③若原数据库中存在传感器数据表,则向表中添加新的温度传感器信息;④编写气温数据读写程序模块,实现气温数据表的存取功能。
10.小温为芦丁鸡饲养箱搭建了温度监测系统。该系统中已选择的硬件有IoT模块、智能终端、温度传感器、执行器(温度控制器)、服务器等。服务器通过无线网络与智能终端相连接,智能终端连接传感器和执行器。用户通过浏览器查看数据库中的数据,在浏览器的地址栏中输入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.小明参观校史馆时发现展品老化,认为可能与校史馆环境温湿度有关,搭建校史馆环境监测系统以保护展品。小明选择的硬件有:智能终端、温湿度传感器、执行器(如LED灯)、服务器等。服务器通过无线网络连接智能终端,智能终端连接传感器和执行器,实时监测并控制校史馆内的温湿度环境,延缓展品老化,传承校史文化。请回答下列问题:
(1)该系统中关于控制与反馈的流程如下所示,①②③处填空正确的是________。(单选,填字母)
A.传感器 控制器 执行器
B.控制器 执行器 传感器
C.传感器 执行器 控制器
D.控制器 传感器 执行器
(2)为方便用户手机APP随时随地查看校史馆温度。该系统将要采用的开发模式为________(单选,填字母;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)信息系统的闭环控制,控制器控制执行器操作,执行器接收控制信息并对受控对象施加控制作用,传感器获取外部世界信息。根据图示可知①为控制器、②为执行器、③为传感器。(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 网络应用软件开发
课时目标
1.借助工具与平台开发网络应用软件。2.掌握网络架构C/S和B/S的优缺点。
一、网络应用开发概述
在选择开发平台前,必须先了解网络应用软件的实现架构及不同分类。网络应用软件的实现架构有两种,分别是          和          。
1.客户端/服务器架构(Client/Server 架构,简称    )
(1)概述:它可以充分利用客户端与服务器端的硬件环境的优势,将任务合理地分配到客户端和服务器端。
①客户端:主要完成用户的具体业务,如人机交互、数据的输入与输出等。
②服务器端:主要提供数据管理、数据共享、系统维护和并发控制等。
(2)优点:降低了系统的通信开销和开发的难度。
(3)缺点:客户端软件须安装才能使用,给应用程序的升级和维护带来一定的困难。
C/S架构图
2.浏览器/服务器架构(Browser/Server架构,简称    )
(1)概述:它是随着Internet技术的兴起,对C/S架构改进后产生的一种软件系统体系结构。客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(2)优点:客户端无需专门程序,应用程序的升级和维护都可以在服务器端完成,升级和维护都较方便,极大地降低了成本和工作量。
(3)缺点:服务器的负荷较重,对服务器的要求较高。
B/S架构图
二、网络应用的规划设计
1.过程
(1)对网络应用进行详细的分析。
(2)在分析的基础上确定应用的架构模式,并根据架构模式选择合适的开发工具及现有的应用框架,同时明确应用的各个功能模块。
(3)用统一、规范的图表和书面语言表达出来。
2.举例:“网络聊天机器人”应用的规划设计
(1)应用的目的
该应用所要解决的问题是人机对话,输入数据是人向机器人说出的话语,输出数据是机器人对话语的合理回应。
(2)应用的总体架构
因为该应用为网络应用,只用于实现简单的人机对话,所以对服务器的要求不高。同时考虑到便于应用的维护和发布,本应用采用B/S架构,开发工具及框架选取Python、Flask Web框架及 SQLite数据库。
(3)应用的功能组成
根据网络聊天机器人的功能可以确定该应用的主要功能模块。另外,网络应用一般是多用户并发使用,所以必须具备用户登录注销功能模块和用户聊天记录等的管理功能模块。
“网络聊天机器人”功能图
(4)界面设计及代码实现
在确认应用的功能组成后,就可以按各个功能模块的作用设计出相应的人机交互界面,并在此基础上完成代码编制。如登录注销功能用于用户进入和离开机器人聊天室,也即实现用户身份的认证功能;聊天功能模块用于实现人机对话过程。
三、编写网络应用程序
AIML:Artificial Intelligence Markup Language,即人工智能标记语言。可以通过导入该模块解决网络聊天机器人问题。
编写网络应用程序首先要确定相应的Web应用框架,在Python中常用的Web应用框架有Flask、Django及Tronado,其中Flask Web框架非常精简,属于小型框架。Flask Web 框架具有一个包含基本服务的核心,并且是一个可扩展的框架,很多功能可以通过扩展来实现。它允许开发者任意挑选符合项目需求的扩展,甚至可以自行开发。
Web应用程序编写流程
1.导入框架模块
导入框架模块为Web应用程序导入Flask框架及扩展的模块,以便在程序代码中使用框架提供的功能,其代码如下:
from flask import Flask #导入Flask框架模块
2.创建应用实例
创建应用实例为Web应用程序创建Flask类的对象,即创建一个应用实例,其代码如下:
app=Flask(_ _name_ _)
3.编写路由和视图函数
建立URL到程序代码的关联,其代码如下:
@app.route('/')    #路由
def index():#视图函数
  return'

这是我的第一个网页程序!

'
当用户在浏览器中向Web服务器发出请求时,Web服务器会把请求发送给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方法就会启动该集成的开发Web服务器,服务器启动后就会进入轮询状态,等待用户访问并处理用户请求,直到程序停止。
“_ _name_ _=='_ _main_ _'”是确保只有当直接执行这个脚本时才启动开发Web服务器,如:Python web.py。
四、调试发布
程序在编写过程中会出现错误,需要进行调试、修正错误。错误一般包括两类:一类是相对简单的语法错误,在程序执行时Python会检查出相应的错误并给出修改建议;另一类是相对复杂的逻辑错误,需要编程人员仔细研究和分析。调试结束后,在确保应用能正确运行的情况下,才能将其发布至服务器,供用户使用。
1.调试模式
Flask Web框架提供了一个称为调试模式的功能,只要在开发配置或程序代码中设置debug= True就能打开调试功能。
注意不要在实际的网站应用环境,即生产环境中使用调试模式,否则将会是一个巨大的安全漏洞。那么在实际生产环境中如果程序出现问题,该如何记录以备开发人员检查呢 开发人员往往会利用                进行报错,以及用    进行记录等调试方法对程序进行查错及排错。
2.应用发布
当Web应用程序通过调试并修改完善后投入实际应用,在开发环境中我们只需要通过如下命令就可以启动Web应用,以供他人访问使用。
Python应用程序.py runserver
但这是Flask Web框架自带的开发Web服务器,它仅供开发者调试使用,本身不够强健、安全和高效,同时也没有顾及实际应用中随着用户数量增加而产生的性能问题,因此不适合作为实际生产环境使用。在实际生产环境中常见的可靠的Web服务器有很多,如IIS、 Apache、Nginx、Tomcat及WebLogic等,只需将自己编写的Web应用程序以WSGI应用或CGI形式发布至相应的Web服务器即可。
例1 小明搭建了一个“土壤湿度监测系统”,能通过浏览器查看实时湿度数据,当湿度小于某阈值时,信息系统自动开启喷淋设备,大于某阈值时自动关闭喷淋设备。该系统的架构如图所示:
下列说法不正确的是 (  )
A.该信息系统采用了B/S架构模式
B.该信息系统具备闭环控制功能
C.该信息系统仅传输了土壤湿度数据
D.网络是该信息系统中重要的支撑技术
听课笔记:________________________________________________________________________
_________________________________________________________________________________
变式训练1 校园一卡通系统能在不同校区实现食堂就餐、图书借阅、网上查询课表和成绩等功能,甚至还可以乘公交和地铁。校园一卡通系统的网络架构示意图如下所示。下列说法不正确的是 (  )
A.某校区内部的校园一卡通系统的计算机网络一般属于局域网(LAN)
B.各消费POS机与各个结算中心之间的数据传输必须遵循HTTP协议
C.各终端可以通过浏览器实现数据查询、后台管理等操作,那么该系统属于B/S架构
D.网络中的数据通信系统主要由传输介质和网络互联设备等组成
例2 小明搭建“室内环境监测系统”,实现如下功能:当室内亮度达到系统设定的阈值时,系统使用执行器放下窗帘,当窗台湿度达到系统设定的阈值时,系统使用执行器关闭窗户,并且系统将采集到的数据通过室内 Wi-Fi 保存到服务器的数据库中。系统架构示意图如图所示。下列说法不正确是 (  )
A.搭建该系统需要配备光线传感器和湿度传感器
B.该系统的网络架构为 C/S 架构
C.执行器可以响应 PC 客户端的请求
D.该系统客户端可以获取输入端传感器的数据
听课笔记:________________________________________________________________________
_________________________________________________________________________________
变式训练2 小王搭建“室内环境监测系统”,实现如下功能:当室内亮度达到系统设定的阈值时,系统使用执行器放下窗帘,当窗台湿度达到系统设定的阈值时,系统使用执行器关闭窗户,并且系统将采集到的数据通过室内 Wi-Fi保存到服务器的数据库中。系统架构示意图如图所示。下列说法不正确的是 (  )
A.搭建该系统需要配备光敏传感器和湿度传感器
B.该系统运行速度仅取决于硬件的性能
C.本系统采用B/S网络开发模式进行工作
D.该系统客户端可以通过网络获取输入端传感器的数据
例3 小明使用Flask模块制作了某信息系统的用户登录验证子系统,其各个路由、视图说明以及实现程序如下所示,请回答相关问题。
路由地址 视图说明
/ 系统首页
/user/ 显示欢迎信息以及用户对应的信息
/system name= xiaoming&password= secretinf 传递登录信息完成验证后显示系统管理页面
from flask import Flask, render_template, redirect
app=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)程序第①空是传递登录信息,进行登录验证并显示系统管理页面的路由与视图函数,那么该处填写的语句是     (单选,选填字母)。
A.@app.route("/system",methods=["GET"])
B.@app.route("/login",methods=["GET"])
C.@app.route("/user",methods=["POST"])
D.@app.route("/login",methods=["POST","GET"])
(2)若该Web服务器的地址是192.168.0.1,运行端口是8080,程序试运行时需打开调试功能,那么第②空应该填写的语句是     (单选,选填字母)。
A.host="192.168.0.1",port="8080",debug=True
B.host="http:∥192.168.0.1", port="8080",debug=True
C.host="http:∥192.168.0.1:8080",debug=True
D.host="192.168.0.1:8080",port="8080"
(3)该程序运行后,在浏览器输入网址http:/192.168.0.1:8080/user/xiaoming,网页显示内容为:       
听课笔记:________________________________________________________________________
_________________________________________________________________________________
变式训练3 小明开发了蔬菜生长管理系统由智能终端、温度传感器、湿度传感器、浇水控制器和Iot模块组成,智能终端通过无线网络将温湿度数据上传到服务器,根据服务器反馈的数据执行是否浇水操作,学生可通过手机或电脑浏览器查看历史数据。服务器提交的部分数据和服务器端对应的路由和视图函数的部分代码如图所示。
变量名 作用 服务器端部分代码
id 传感器编号 @app.route('/query') def index():
t 温度
d 湿度
若当前实时温度是32,湿度是20,智能终端需要向服务器发送的URL是http:∥192.168.0.10:5050/①     id=1&②    。
下列选项正确的是(单选,填字母) (  )
A.①index ②t=20&d=32
B.①index ②t=32&d=20
C.①query ②t=20&d=32
D.①query ②t=32&d=20
1.下列有关C/S、B/S架构的说法,不正确的是 (  )
A.在C/S架构中有专门的数据库服务器,但还要运行客户端程序
B.在B/S架构中,应用程序部署在服务器端,客户端通过浏览器访问应用程序
C.B/S架构中,客户端发送HTTP请求消息传给服务器,Web应用程序处理请求并把相应的HTML页面传给客户端
D.Web应用是基于C/S架构的,也就是客户端/服务器架构
2.与C/S架构相比,下列选项中不属于B/S架构优点的是 (  )
A.界面美观 B.易于维护
C.访问范围广 D.可扩展性好
阅读下列材料,回答第3至4题。
  小明使用 Flask Web 框架搭建了一个家庭监控报警系统。智能终端通过摄像头、红外线传感器、烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送短信预警信息,用户使用手机浏览器查看监控信息。系统结构示意图如图所示。
3.下列有关该信息系统的说法不正确的是 (  )
A.该信息系统采用了C/S模式架构
B.各类传感器的作用是采集数据
C.用户使用手机浏览器可查看实时监控信息
D.智能终端通过Wi-Fi连接网络并将数据传输到服务器
4.当有人经过红外检测区时,传感器的反馈值会由1变为0。部分代码如下:
while True: 
  val=pinl.read_digital() #采集红外传感器信号
  #处理采集到的信号,代码略
  sleep(500)
下列说法正确的是 (  )
A.智能终端每500秒采集一次数据
B.从传感器获取的数据为“0”时,用户会收到预警信息
C.红外传感器采集的是环境中的声音信号
D.红外传感器采集到的数据使用RFID传输到服务器
5.小王开发基于Python的FlaskWeb框架的室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(1)由上述材料可知,服务器端的IP地址为    ,该系统的实现架构属于    (选填:C/S架构、B/S架构)。
(2)实现上述系统的服务器端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"
#其他系统子页面路由,代码略
if _ _name_ _=='_ _main__':
  app.run(③    ) #启动Web服务器
6.小张为学校搭建教室监测系统,该系统能实现监测教室的声音强度,并转换成分贝值,存入系统数据库,当分贝值超过阈值60分贝时教室音响发出提醒或警告。教师通过浏览器查看实时监测数据。该系统服务器端程序基于FlaskWeb框架编写,部分代码如下。
#导入Falsk框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/jiance")
def count():
  #根据实时监测数据向智能终端发送指令,代码略
@app.route("/show")
def cx():
  #从数据库读取监测数据,并返回查看页面,代码略@app.run(host="192.168.10.100",port=8080)
用于查看实时监测数据,则浏览器端应访问的URL是http:∥    。
7.为了帮助学校更好开展科技文化节报名工作,小王设计了一个网上报名系统,用户通过浏览器在相应页面进行登录、报名、查询等操作。该系统服务器端程序采用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)下列关于该信息系统的描述,正确的是    (多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.实现登录功能的视图函数名称为log
B.该系统网络应用软件的实现架构是B/S架构
C.在服务器主机上无法实现登录、报名、查询等操作
D.服务器采用POST方式接收用户名和密码数据
8.某大学研究小组使用FlaskWeb框架开发了简易版“智能雨刷”测试系统,它可以利用传感器获取雨量数据,对传感器收集的数据分析后,根据给定的阈值自动控制雨刷器运行。系统的架构图如图所示,请回答下列问题:
智能雨刷测试系统的智能终端和服务器的程序代码如下:
#服务器端的部分程序代码
import sqlite3
from flask import Flask,request
app=Flask(_ _name_ _)
@app.route("①    ",methods=["GET"])
def add_data():
  rain=int(request.args.get("rain"))
  #用户设置的阈值300赋值给max,代码略
  if rain>max:
    return 1
  else:
    return 0
if _ _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开发板串口通信参数、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值的情况控制雨刷器的工作状态,resp的值来自    (单选,填字母:A.传感器采集/B.服务器返回/C.智能终端分析得出)。
(2)请通过增加传感器和执行器(或使用汽车已有的执行器)对该系统功能进行一项扩展,写出传感器和执行器的名称,并描述实现的功能:_______________________________________________。
9.某网站对信息进行加密解密,选择页面“index.html”如图a,加密页面“jia.html”如图b,解密页面“jie.html”如图c。在选择页面点击相应按钮,选择加密或解密。
选择加密时,在明文文本框中输入明文,点击“加密”按钮,网页显示密文与对应的密钥。加密规则为打乱明文对应的索引作为密钥,再利用该索引逐个取明文字符连接成密文,例如:明文为“信息技术”,若被打乱的索引为[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,Flask
import random
app=Flask(_ _name_ _) #创建应用实例
@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 网络应用软件开发
知识梳理
一、客户端/服务器架构 浏览器/服务器架构
1.C/S架构
2.B/S架构
四、1.电子邮件来发送程序运行的错误信息 日志文件
例题精析
例1 C [本题考查信息系统的搭建。A选项Web服务器提供网页浏览服务,因此是B/S架构。B选项图中传感器来获取信息,通过服务器进行处理,并采用执行器输出,具备闭环控制功能。C选项传感器传输的是土壤湿度,但信息系统在工作时,肯定还要传输控制信息等。D选项网络可以将地理位置不同、功能独立的多个计算机系统互联起来,因此是信息系统的重要支撑技术。]
变式训练1 B [本题考查信息系统中网络技术相关知识。若消费POS机与各个结算中心之间的所有数据都是基于B/S模式的,那么他们间的数据传送基本需要HTTP协议完成。但除了B/S模式以外还有很多其他传送模式,比如C/S或者点对点,这些就无需HTTP协议。从目前系统看,数据传输基本都需要遵循TCP/IP协议。]
例2 B [本题考查网络程序开发。A选项当室内亮度和湿度达到系统设定的阈值时,执行器开始工作,因此需要这两样传感器。B选项题目中采用Web服务器,可知为B/S架构。C选项执行器响应PC客户端请求,执行相应的动作。]
变式训练2 B [本题综合考查信息系统知识。选项ACD均正确。该系统运行速度取决于软件及硬件的综合性能。]
例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架构的优点,而界面美观的特点不是本质特点。]
3.A [A选项观察图片可知该用户通过浏览器查看监控信息,因此该系统采用了B/S模式架构。]
4.B [A选项该智能终端每500毫秒采集一次数据;B选项“当有人经过红外检测区时,传感器的反馈值会由1变为0”,B选项正确;C选项红外传感器采集的是环境中的模拟信号,再处理成可以处理的数字信号;D选项红外传感器采集到的数据传输到服务器的方式很多如无线网络、蓝牙、串口等。]
5.(1)192.168.1.100 B/S架构
(2)①"/s" ②request.args.get("d")
③host="192.168.1.100",port=5000
解析 本题考查网络应用程序的开发。(1)从题图中可知IP地址,系统程序及相关的子系统都部署在Web服务器端,因此属于B/S架构。(2)①数据采集子页面路由,从图中可知路由为“s”。②变量d存储采集到的光线数据,再参照上一条语句,可以得到答案。③略。
6.192.168.10.100:8080/show
解析 从数据库读取监测数据的路由为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的形式传输给服务器,服务器返回相应的状态码errno和返回值resp。(2)略。
9.(1)A (2)我爱自己也爱信息 
(3)①index.html ②keyn[j]==i ③app.run()
解析 本题考查网络程序的开发。(1)通过浏览器进行信息传递,属于B/S架构。(2)根据密钥,找到索引位置为52064731,可以得到解密结果。(3)①从题图a中可知,主页名省略,默认为index.html。②找到相对所在的索引位置j。③启动服务器。

展开更多......

收起↑

资源列表