(共27张PPT)
第2章 信息系统的支撑技术
浙教版(2019版) 信息技术(高中)
2.6 网络应用软件开发
必修2 信息系统与社会
1、网络应用开发概述、规划设计
2、编写网络应用程序
学习目标
重点:编写网络应用程序
难点:编写网络应用程序
重难点
课堂导入
网络软件是网络不可或缺的组成部分,离开网络软件,整个网络将无法运作。怎样才能开发出符合用户需求的网络软件呢 其实网络软件开发也是软件开发的一种,就是根据用户需求开发相应功能的软件系统的过程一软件开发一般都需要基干某种程序设计语言及相应的开发工具或平台来实现。
2.6.1 网络应用开发概述
网络应用软件的实现架构有两种,分别是客户端/服务器架构和浏览器/服务器架构。
1、客户端/服务器架构(Client/Server架构,简称C/S架构)
图2.6.1 C/S 架构图
2、浏览器/服务器架构(Browse/Server架构,简称B/S架构)
图2.6.2 B/S架构图
2.6.2 网络应用的规划设计
“网络聊天机器人”应用的规划设计
1.应用的目的。该应用所要解决的问题是人机对话,输入数据是人向机器人说出的话语,输出数据是机器人对话语的合理回应。
2.应用的总体架构。因为该应用为网络应用,只用于实现简单的人机对话,所以对服务器的要求不高。同时考虑到便于应用的维护和发布,本应用采用B/S架构,开发工具及框架选取 Python、 Flask Web框架及Sqlite数据库。
3.应用的功能组成。根据“网络聊天机器人”的功能可以确定该应用的主要功能模块。另外,网络应用一般是多用户并发使用,所以必须具备用户登录注销功能模块和用户聊天记录等的管理功能模块。该应用的功能组成如图2.6.3所示。
图2.6.4 登录界面
图2.6.5 聊天界面
4.界面设计及代码实现。在确认应用的功能组成后,就可以按各个功能模块的作用设计出相应的人机交互界面,并在此基础上完成代码编制。如登录注销功能用于用户进入和离开机器人聊天室,也即实现用户身份的认证功能,其界面可设计成如图2.6.4所示;聊天功能模块用于实现人机对话过程,其界面可以设计成如图2.6.5所示。
Sqlite数据库
Sqlite是一个轻量级、跨平台的关系型数据库,具有独立性 零配 置、开放性、占用资源低等特点。基本操作包括创建数据库、连接数据库、创建数据表创建数据记录删除数据记录、查询数据记录、更新数据记录。 Python语言可以通过加载SQLt模块来操作 Sqlite,也可以借助第三方的软件来管理 Sqlite, 如 Sqlite Studio、 Sqlitespy和 Sqliteadmin等。
拓展链接
图2.6.3 “网络聊天机器人”功能图
2.6.3 编写网络应用程序
在PYTHON中常用的web框架有Flask、Django及Tronado,其中Flask web框架精简,属于小型框架。
图2.6.6 web应用程序编写流程
(1)导入框架模块。为Web应用程序导入 Flask框架及扩展的模块,以便在程序代码中使用框架提供的功能,其代码如下:
from flask import Flask 导入 Flask框架模块
(2)创建应用实例。为web应用程序创建FLASK类对象,即创建一个应用实例,其代码如下:
App=Flask(_name_)
图2.6.7 URL、路由和视图函数关联图
(3)编写路由和视图函数。建立url到程序代码的关联,其代码如下:
@app.route(‘/’)
Def index():
return’
这是我的第一个网页程序!
’
(4)启动web应用。其代码如下:
if_name_==‘_main_’:
app.run()
例1
用 Flask Web框架实现一个在网页中显示文本“这是我的第一个网页程序!”的Web应用,其程序代码(web.py)如下
from flask import Flask
from flask_script import Server, Manager #导入 Flask的服务器管理扩展模块
app Flask( namemanager Manager(app)
server Server(host="0.0.0.0", port=80, threaded=True)
manager.add_command("runserver", server)
@app.route(‘/’)
def index
return '这是我的第一个网页程序!’
If_name_==‘_main_’:
manager.run(
拓展链接
表单
表单是网站与访问者进行互动的界面,它用来在网页中接收输入的数据并将其发送给web服务器。
例2
使用FlaskFrom模块实现网络聊天机器人简单对话的功能,其程序代码webrobot如下:
模板文件: index.html
{ extends "base. html" %)
{ import "bootstrap/wtf .html“ as wuf %}
{% block title % } 聊天机器人 { % enblock%}
{% block page_content %}
{{wtf.quick _form(form)}}
{% endblock %]
图2.6.8 网络聊天机器人
2.6.4 调试发布
1、调试模式
Flask Web框架提供了一个称为调试模式的功能,只要在开发配置或程序代码中设置debug=True就能打开调试功能。例如,web.py程序要打开调试模式,只要在应用实例APP的创建代码之后插入代码 app.debug=Tue即可。注意不要在实际的网站应用环境,即生产环境中使用调试模式,否则将会是一个巨大的安全漏洞。那么在实际生产环境中如果程序出现问题,该如何记录以备开发人员检查呢 开发人员往往会利用电子邮件来发送程序运行的错误信息进行报错,以及用日志文件进行记录等调试方法对程序进行查错及排错。
2、应用发布
当web应用程序通过调试并修改完善后,最后就是投入实际应用了,在开发环境中我们只需要通过如下命令就可以启动Web应用,以供他人访问使用。
Python应用程序. py runserver
但这是 Flask Web框架自带的开发Web服务器,它仅供开发者调试使用,本身不够强健、安全和高效,同时也没有顾及实际应用中随着用户数量增加而产生的性能问题,因此不适合作为实际生产环境使用。在实际生产环境中常见的可靠的Web服务器有很多,如Ⅱs、Apache、 Nginx、Tomcat及 Weblogic等,只需将自己编写的Web应用程序以WSGI应用或CGI形式发布至相应的web服务器即可。
CGI
CGI是外部应用程序与Web服务器之间的接口标准,它允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,是Web技术中最重要的技术之一。
拓展链接
思考与练习
根据“网络聊天机器人”功能图(如图2.6.3),尝试完成聊天机器人的其他意一个功能模块。
巩固与提高
1.以你熟悉的信息系统为例,对该系统的硬件、软件、传感与控制以及网络的组成进行分析,并从使用者的角度对其便捷性和安全性进行评价。
2.请选择一种方式,如演示文稿、图示、板书等,向同学讲解2.4或2.5节的内容。要求详略得当,举例恰当,清晰明了。
3.设计一个可以实时监控家庭环境的家庭安防系统。当家中无人时,如果有外来人员进入,该系统能立即报警并通知主人,还具备视频录制等功能。
请思考:整个系统需要哪些硬件设备,应用软件要具备哪些功能
小 结
1、网络应用开发概述、规划设计
2、编写网络应用程序、调试发布
THANKS
“
”