内容正文:
2.6 网络应用软件开发第一课时(分层作业)
【基础达标】
1. 下列关于 C/S 架构与 B/S 架构的说法,正确的是( )
A.B/S 架构为客户端与服务器模式
B.B/S 架构的可维护性比 C/S 架构低
C.C/S 架构为浏览器与服务器模式
D.C/S 架构的可维护性比 B/S 架构低
2.下列关于 C/S 架构和 B/S 架构的说法,不正确的是 ( )
A.C/S 架构常常只局限在小型局域网,不利于扩展,B/S 架构可以直接放在广域网上
B.C/S 架构程序需要安装才可使用,B/S 架构客户端无需安装,有Web 浏览器即可
C.C/S 架构维护成本高,要准备数据库存储服务器,以防服务器崩溃
D.B/S 架构无需升级多个客户端,只需对服务器进行升级
3.编写好网络应用程序后,在发布之前,我们要对程序进行调试,那么程序调试的最终目的是( )
A.发现程序中的错误
B.验证程序的正确性
C.改正程序中的错误
D.改善软件的性能
4. 下列关于 Flask 框架中 Web 服务器的说法,正确的是 ( )
A. Flask自带Web 服务器,所以启动 Web 服务器无需创建应用实例
B.服务器处理完用户请求后便会关闭
C.服务器启动后就进入轮询状态
D.调用视图函数可开启服务器
5. 使用 Flask 框架编写的网络应用程序,通常包含下列基本语句:
①from flask import Flask
②def index():
③@app.route("/")
④app=Flask(__name__)
⑤app.run(debug=False)
要正确运行程序,上述语句执行的先后顺序为( )
A.①②③④⑤ B.①③②④⑤
C.①④②③⑤ D.①④③②⑤
6. 小美制作了一个简单的 Flask 程序,其中编写的服务器端程序 Pythonweb.py 与模板文件 user.html 如下:
from flask import Flask
app=Flask(__name__)
@app.route("/user/<name>") #动态路由
def user(name):
#渲染 user.html模板文件
return render_template("user.html",name=name)
<body>
{%if name=="admin"%}
<h1>Hello,Boss!</h1>
{%else%}
<h1>Hello,{{name|capitalize}}!</h1>
<!--{{name|capitalize}}表示使变量 name 首字母大写-->
{%endif%}
</body>
运行程序后,在浏览器输入网址:http://127.0.0.1:5000/user/admin,则网页显示内容为 ( )
A.Hello,admin! B.Hello,Admin!
C.Hello,boss! D.Hello,Boss!
【巩固提升】
7. 关于如图所示的网络应用软件的实现架构,下列说法不正确的是 ( )
A.该架构的名称是浏览器/服务器架构(B/S 架构)
B.该架构的客户端在浏览器中只负责表示逻辑层的实现,业务逻辑和数据库都在服务器端运行
C.该架构的客户端发送 HTTP 请求消息传给服务器,服务器将请求传递给Web 应用程序,Web 应用程序处理请求,并把相应的 HTML 页面返回给客户端
D.该架构是随着 Internet 技术的兴起,对 C/S 架构改进后产生的一种软件系统体系结构,今后它将完全取代 C/S 架构
8.有如下 Python 程序段:
from flask import Flask
app=Flask(__name__)
@app.route("/b1")
def index_b1():
#代码略
@app.route("/b2",methods=["GET","POST"])def index_b2():
#代码略
if request.method=="GET":
return render_template("b2.html")
else:
if __name__=="__main__": #启动 Web 应用
app.run(debug=False)
执行该程序段后,若实现功能为:当用户发出 POST 请求时,网页跳转至“/b1”页面,则上述代码中方框处的代码为 ( )
A.return redirect("index_b1")
B.return render_template("b1.html")
C.return redirect("/b1")
D.return request("index_b1")
【链接高考】
9. 小明使用 Flask Web 框架搭建了一个家庭监控报警系统。智能终端通过摄像头、红外线传感器和烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送预警短信,用户可使用手机浏览器查看实时监控信息。系统结构示意图如图所示。
下列关于该信息系统的说法,不正确的是 ( )
A.该信息系统采用了 C/S 架构
B.各类传感器的作用是采集数据
C.用户使用手机浏览器可查看实时监控信息
D.智能终端通过 Wi-Fi 连接网络并将数据传输到服务器
10. 小刘搭建了“室内光线强度监测系统”,该信息系统主要包括“数据采集”“数据查询”“数据维护”子系统。网站框架如图所示,系统的部分代码如下。
from flask import Flask,render_template,request
app=Flask(__name__)
@app.route("/")
def inder():
#将采集的数据返回主页面,代码略
@app.route("/s",methods=["GET"])
def get():
id=int(request.args.get("id"))
d=float(request.args.get("d"))
#将接收的数据存储到数据库并根据阈值控制执行器,代码略
return "get data ok"
@app.route("/cx")
def cx():
#查询相关数据,代码略
if __name__=="__main__":
app.run(host="192.168.1.1",port=88)
下列说法不正确的是 ( )
A.数据采集子页面采用 GET 的形式提交数据
B.上述代码中“@app.route("/cx")”与“cx()”是一对路由和视图 函数
C.“app=Flask(__name__)”的功能是为 Web 应用程序创建 Flask 类的对象
D.在浏览器地址栏输入“http://192.168.1.1:88/get”,按回车键后, 浏览器中显示“get data ok”
参考答案
【基础达标】
1.D 解析:C/S 架构为客户端与服务器模式。B/S 架构为浏览器与服务器模式。B/S 架构的可维护性比 C/S 架构的高,要升级软件系统只需在服务器端一处实施即可。
2.C 解析:B/S 架构将系统功能实现的核心部分集中到服务器上,增加了服务器端的负担。因为业务逻辑集中在服务器端,服务器需要对不同用户的多次请求都做出响应,同时又要对数据库进行维护,工作量较大,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,要通过提高服务器的性能、增加服务器的数量来承担更大的负载,并准备数据库存储服务器,以防万一
3.C 解析:程序调试的目的是检查并纠正程序中的错误,以保证程序的稳定运行。程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。根据测试时所发现的错误,进一步诊断,找出原因和具体的位置并进行修正。
4.C 解析:在 Flask 框架中,Web 服务器是自带的,调用应用实例的 run 方法才会启动该集成的开发 Web 服务器。服务器启动后会一直等待用户访问并处理用户请求直到程序结束。在确保只有当执行这个脚本时才启动开发 Web 服务器,语句是__name__=="__main__"。
5.D 解析:使用 Flask Web 框架编写网络应用流程的顺序为:①导入框架模块。②创建应用实例。③编写路由和视图函数。④启动 Web 应用。
6.D 解析:当 URL 中动态部分为 admin 时,网页文件中 if name=="admin" 的结果为真,输出“Hello,Boss!”。
【巩固提升】
7.D 解析:C/S 架构不会被淘汰,B/S 架构和 C/S 架构各有特点,B/S 架构虽然有升级维护方便、极大地降低了成本和工作量的优点,但它对服务器的性能要求比较高,而且现在手机上使用的 App 绝大多数是以 C/S 架构为基础设计的。C/S 架构和 B/S 架构各有优势,未来发展趋势是将 B/S 架构与 C/S 架构的优势完美地结合起来,也就是说,该平台的应用系统既能以 B/S 架构发布运行,同时又具有 C/S 架构的高效性。
8.C 解析:render_template 函数用于渲染和显示网页模板,但网页模板必须放于指定目录,在 render_template 函数中不能指定路径。redirect 函数用于网页跳转,但其参数为路由而非视图函数。request 对象用于表单数据的提交,而非网页跳转。
【链接高考】
9.A 解析:由用户使用手机浏览器查看监控信息,可知该信息系统采用了 B/S 架构。
10.D 解析:在浏览器地址栏输入“http://192.168.1.1:88/s”,按回车键后,浏览器中显示“get data ok”。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$