内容正文:
2.6网络应用软件开发
学习目标:
1、理解网络应用软件的框架及基本组成结构。
2、掌握使用Flask框架编写的网络应用软件的基本方法及步骤。
3、了解聊天机器人的实现原理,从而进一步理解网络应用实现的不同之处。
智能聊天机器人
网络聊天机器人是基于什么软件架构开发的?
思考:
什么是C/S,B/S架构?
网络应用开发概述
1.客户端/服务器架构(Client/Server架构,简称C/S架构)
网络应用开发含义
2.浏览器/服务器架构(Browser/Server架构,简称B/S架构)
网络应用开发含义
C/S、B/S对比
网络应用开发含义
网络应用规划设计
1.应用的目的
2.应用的总体架构
3.应用的功能组成
4.界面设计及代码组成
网络应用的规划设计
1.应用的目的
所要解决的问题:
输入的数据:
输出的数据:
人机对话
人向机器人说出的话语
机器人对话语的回应
2.应用的总体架构
因为该应用为网络应用,只用于实现简单的人机对话,所以对服务器的要求不高。同时考虑到便于应用和发布,本应用采用 ,开发工具及框架选取Python、Flask Web框架及SQLite数据库。
B/S架构
SQLite是一个轻量级、跨平台的关系型数据库、具有独立性、零配置、开放性、占用资源低等特点。
Python中常用的Web应用程序框架由Flask、Django及Tronado。其中Flask Web框架非常精简,属于小型框架。使用Flask Web开发的网络应用的流程如图。
3.应用的功能组成
聊天机器人功能图
网络聊天机器人
手机QQ功能图
4.界面设计及代码实现
登录界面
聊天界面
编写网络应用程序
Python中常用的Web应用程序框架由Flask、Django及Tronado。其中Flask Web框架非常精简,属于小型框架。使用Flask Web开发的网络应用的流程如图。
上面的web应用只实现了单一文本的输出,这与“网络聊天机器人 ”
应用相去甚远。如果要开发“网络聊天机器人 ”,须在原有的Web应用
程序的基础上解决两个问题:一是机器人对话能力的实现;二是网页上的
输入与输出。
第一个问题可以通过导入AIML模块来解决。AIML即人工智能标记语言,
里面有Java、Python、C、C#及Pascal等语言的版本。
第二个问题可以通过在网页中使用提交表单来解决。要在Flask Web应用
程序中使用表单则必须导入flask_wtf扩展的FlaskForm模块。同时为了使
代码更加精简,可以使用网页模板,则必须导入Flask的render_template
模块。
调试发布
一般情况下,程序在编写过程中难免会出现错误,需要进行调试、
修正错误。
1.调试模式
Flask Web框架提供了一个称为调试模式的功能,只要在开发配置
或程序代码中设置debug=True就能打开调试功能。例如,web.py
程序要打开调试模式,只要在应用实例APP的创建代码之后插入代
码app.debug=True即可。
2.应用发布
当应用程序通过调试并修改完善后,最后就是投入实际应用了,在开发环境
中我们只需要通过如下命令就可以启动Web应用,以供他人访问使用。
Python 应用程序.py runserver
编写网络应用程序
但这是Flask Web框架自带的开发Web服务器,它仅供开发者调试使用,
本身不够强健、安全和高效。在实际生产环境中常见的可靠的Web服务器
有很多,如IIS、Apache、Nginx、Tomcat及WebLogic等,只需将自己
编写的Web应用程序以WSGI应用或CGI形式发布至相应的Web服务器即可。
2.应用发布
课堂小结
1.网络服务的主要模式( )
A. C/S模式
B. B/S模式
C. P2P模式
D. B2B模式
A
2.有关C/S、B/S结构下列说法错误的是( )
A.在C/S结构中,有专门的数据库服务器,但客户端还要运行客户端应用程序,这也叫做胖客户端。
B.在B/S结构中,客户端在浏览器中只负责表示层逻辑的实现,业务逻辑和数据库都在服务器端运行。也就是说 ,应用程序部署在服务器端,客户端通过浏览器访问应用程序。
C.通常B/S结构中,客户端发送HTTP请求消息传给服务器,服务器将请求传递给WEB应用程序,WEB应用程序处理请求,并把相应的HTML页面传给客户端。
D.WEB应用是基于C/S结构的,也就是客户端/服务器结构。
D
3.以下关于C/S与B/S模式的描述正确的是( )
A.C/S为浏览器与服务器模式
B.B/S为客户端与服务器模式
C