2.6 编写网络应用程序
一、教学设计模板
课程标准
和
教学目标
编写网络应用程序
教材内容: 2.6.3 编写网络应用程序
适应的课程标准:
2.5 通过分析常见的信息系统,理解软件在信息系统中的作用,借助软件工具与平台开发网络应
用软件。
教学目标:
●理解网络应用软件的框架及基本组成结构。
●掌握使用 Flask 框架编写的网络应用软件的基
本方法及步骤。
●了解聊天机器人的实现原理,从而进一步理解
网络应用实现的不同之处。
指向的核心素养:
●信息意识:能够按要求获取与处理信息;在合作
学习过程中,愿意与团队成员共享信息。
●计算思维:针对给定的网络应用的规划和设计,
完成网络应用的代码编写。在此过程中能提炼出应
用需求的基本特征,进行抽象处理,并用形式化的
方法来表述。
●数字化学习与创新:掌握数字化学习系统,学习
资源与学习工具的操作技能,用于开展自主学习、
协同工作、知识分享与创新创造。
学习环境:有教学控制软件的多媒体机房,并装有 PPT 软件。
建议课时:1 课时
教学活动
设计
教学环节 教学过程 设计意图
情境导
入
导入 1:B/S 架构的网络应用,客户端无需专门的
应用程序,用户工作界面通过 WWW 浏览器来实现,
应用程序基本上都集中于服务器端。引导学生思考
B/S 架构与常见的应用程序的不同之处,并针对以
下问题进行讨论、交流和回答。
1、当用户通过浏览器访问服务器端资源时,
网络应用如何获得浏览器的请求?
2、网络应用是如何获取用户输入信息的,它
与普通本机应用有何区别?
3、网络应用如何将处理结果转化为网页形式,
并返回给浏览器?
通过对预设问题的分析及讨论交流
启发学生思考,引导学生从网络应用
获取请求、获得用户输入及处理后信
息的输出等情况出发,归纳总结出网
络应用与普通单机运行的应用程序
的不同,从而最终引出解决这些编程
问题的 Web 应用框架。同时在此过程
中也培养了信息意识。
知识讲
解
通过分析上述问题,并在归纳总结学生回答的
基础上,以 PPT 等多媒体投影或板书形式介绍网络
应用程序编写的 Web 应用框架、及 Flask 框架构建
网络应用的步骤及网络应用的编写代码。
I、Python 常用的 Web 应用框架
Flask
Flask 是一个使用 Python 编写的轻量级
Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,
通过讲授让学生 Python 中的网络应
用框架有一个直观的认识,然后通过
实例代码的学习和实践运行,理解和
掌握 Flask 框架在网络应用编写中的
流程及具体代码,让学生进一步强化
相应知识的掌握,从而实现知识的内
化和计算思维的培养。
模板引擎则使用 Jinja2 。Flask 使用 BSD 授权。
Flask 也被称为 “microframework” ,因为它使用
简单的核心,用 extension 增加其他功能。Flask 没
有默认使用的数据库、窗体验证工具,然而 Flask
保留了扩增的弹性,可以用 Flask-extension 加入这
些功能:ORM、窗体验证工具、文件上传、各种开
放式身份验证技术。
Django
Django 是一个开放源代码的 Web 应用框架,
由 Python 写成。采用了 MTV 的框架模式,即模型
M,模板 T 和视图 V。它最初是被开发来用于管理
劳伦斯出版集团旗下的一些以新闻内容为主的网
站的,即是 CMS(内容管理系统)软件。并于 2005
年 7 月在 BSD 许可证下发布。这套框架是以比利
时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django 框架的核心组件有:1、用于创建模型的对
象关系映射;2、为最终用户设计的完美管理界面;
3、一流的 URL 设计;4、设计者友好的模板语言;
5、缓存系统。
Tronado
Tornado 是一种 Web 服务器软件的开源版
本。Tornado 和现在的主流 Web 服务器框架(包
括大多数 Python 的框架)有着明显的区别:它是
非阻塞式服务器,而且速度相当快。得利于其非阻
塞的方式和对 epoll 的运用,Tornado 每秒可以处理
数以千计的连接,因此 Tornado 是实时 Web 服务
的一个理想框架。
II、Flask 框架网络应用编写流程
III、例 1 网络应用程序代码
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '我的第一个 Web 程序!'
if __name__ == '__main__':
app.run()
实践体
验(1)
在知识讲解的基础上,进一步提出任务,如何
应用 Flask 框架实现“网络聊天机器人”。
根据“网络聊天机器人”所要实现的功能,可将实
现分步进行:1、实现人机对话;2、实现网络功能。
单机版聊天机器人话能力的实现通过导入
aiml 模块来解决。AIML(Artificial Intelligence
Markup Language)即人工智能标记语言,本模块
由 Richard.Wallace 发明。目前 AIML 已经有了
Java、Python、C 、C#及 Pascal 等语言的版本。
任务:小组合作(2 人一组),网上搜索 AIML
相关内容,初步了解 AIML 的作用及实现方法,搜
索在 Python 中可以使用的 AIML 库,了解其应用的
方法,并最终以 PPT 的形式进行汇报。选择 1-2 个
小组介绍自己的成果,进行点评。最后在教师的讲
授和指点下完成如下的“单机版联天机器人”的代
码示例。
app.py
通过实践任务的布置,促使学生自主
学习,推动小组合作完成任务,让学
生自主学习理解 AIML 库的作用,并
掌握将 AIML 库的应用方法,进行“单
机版聊天机器人”的代码实现,在实
践中进一步对所掌握的知识所进行
分类、归纳和验证,形成系统化知识;
并通过 PPT 的汇报,让学生们的信息
处理能力有所提升,培养学生数字化
学习与创新的核心素养。
实践体
验(2)
在“单机版聊天机器人”实践体验的基础上,
进一步解决“网络聊天机器人”的网络功能的实现,
首先解决输入问题。
网络应用的信息输入可以通过表单(Form)实
现。表单在网页中用于搜集不同类型的用户输入,
要在 Flask Web 应用程序中使用表单则必须导入
flask_wtf 扩展的 FlaskForm 模块。同时为了使代
码更加精简,可以使用网页模板,则需导入 Flask
的 render_template 模块。
首先由教师讲授表单的相关知识,及表单在
Python 中的代码实现,同时考虑到以单纯的理论讲
解让学生认识表单,感觉比较肤浅,印象不深。
任务:让学生实践完成“网页表单”的实现代
码,并在此代码基础上提出自己的改进方案(如:
界面布局改变、输入内容形式改变或界面美化等)。
选择 1-2 个小组介绍自己的成果,进行点评。
app.py
本环节让学生从简单的表单形式了
解网络应用程序的基本输入方式,从
而使学生更好的理解表单的作用及
其实现方式。同时通过合作学习,与
团队成员共享信息,培养了信息意识
的素养。
index.html
实践体
验(3)
将表单输入与 AIML 库实现在机器人代码整合,
最终实现“网络聊天机器人”。它是使用表单收集
用户的聊天语句提交至 Web 服务器,然后由 Web 服
务器中的 aiml 调用 respond 接口处理这些语句,
最后将 aiml 机器人的回复(即处理结果)发送至
访问者的浏览器并输出。
任务:让学生实践完成“网络聊天机器人”的
实现代码。
webrobot.py
index.html
本环节让学生将表单与 AIML 库整合,
完成“网络聊天机器人”。使学生进
一步理解表单、AIML 库的作用,更好
的理解网络应用的运行方式,培养学
生计算思维的素养。
base.html
课堂小
结
1.网络应用软件的框架:Flask、Django、Tronado。
2.Flask 框架编写的网络应用软件:导入框架模块,
创建应用实例,编写路由和视图函数,启动 Web
应用。
3.AIML 库、Form。
通过回顾总结帮助学生掌握网络的
构建步骤及其各相关设备的作用,进
一步理解信息系统应用的特点及网
络在信息系统中所起的作用,提高学
习自觉性和热情。
作业布
置
基础作业(面向所有学生):
详见课后练习。
提升作业(面向学有余力学生):
请制作一个解决日常问题的网络应用(主题
不限)
课后作业是课堂学习的延伸,是巩固
和升华知识点的有效途径。根据学生
的基础和能力设置不同难度的作业,
以满足不同层次的学生需求。
教学设计
思路
在教学过程中应充分考虑到学生在实际的学习与生活中使用网络应用的几率远远大于自己编写
网络应用,因此需以教师讲授为主并辅以较多的学生实践操作,通过亲身的体验来更好的理解和掌握
网络应用编写的方法和步骤,从而起到事半功倍的效果。
首先在教学过程中教师可以先用事先完成的小巧有趣的网络应用进行演示(如百度 AI 车牌识别
等),从而引起学生的学习兴趣;其次由于课本中例 1 与例 2 的跨度过大,在完成例 1 的教学之后可
以按以下步骤来实施:
1、通过先实现单机版的聊天机器人,来让学生掌握 AIML 模块的使用方法;
2、讲解浏览器的输入信息的方法-表单,并编写程序实现信息输入;
3、通过在网页中使用提交表单的方式来实现网络应用的输入用户聊天信息,表单收集聊天语句
后提交至 Web 服务器,再由 Web 服务器中的 aiml 调用 respond 接口处理这些语句,最后将 aiml 机器
人的回复(即处理结果)发送至访问者的浏览器并输出。
这样一来就将 AIML 处理与网页表单提交相分离,有利于学生的掌握理解。由于在教学内容中
涉及到大量的导入库及辅助文档,如:Flask 库、AIML 库及语料库等,因此教师在课前须提前进行
下载与配置,相应的库及文档可以在教学资源网站中下载。在教学过程中主要重点要落实在 Web 应
用程序编写流程(1、导入框架模块,2、创建应用实例,3、编写路由和视图函数,4、启动 Web 应
用)上,让学生掌握网络应用编写的一般步骤和流程。
针对
核心素养
培养的
设计考虑
核心素养的培养不可能泛泛而谈,而应落实在每一次引导、每一个活动之中,在仔细分析了本课
内容可以融入三类核心素养的培养,并且细致分析了各个核心素养的具体落点:
信息意识的落点在“能够按要求获取与处理信息;在合作学习过程中,愿意与团队成员共享信息。”
本课主要是通过对问题的分析及讨论交流启发学生思考,引导学生从网络应用获取请求、获得用户输
入及处理后信息的输出等情况出发,归纳总结出网络应用与普通单机运行的应用程序的不同,从而最
终引出解决这些编程问题的 Web 应用框架,培养信息意识。同时通过合作学习,与团队成员共享信息,
培养了信息意识的素养。
计算思维指向“针对给定的网络应用的规划和设计,完成网络应用的代码编写。”主要表现为通
过讲授让学生掌握使用 Flask 框架编写网络应用的方法及其流程,并将所学知识应用于实践,进行“单
机版聊天机器人”、“网页表单”及“网络聊天机器人”的代码编写,在实践中进一步对所掌握的知识
所进行分类、归纳和验证,形成系统化知识;在此过程中能提炼出 Flask 框架编写网络应用需求的方
法,进行抽象处理,并用形式化的方法来表述,并能将此方法迁移至整个网络应用的编写,培养计算
思维能力。
数字化学习与创新的落点在“掌握数字化学习系统,学习资源与学习工具的操作技能,用于开
展自主学习、协同工作、知识分享与创新创造”。在 AIML 库的学习及“网页表单”的实践中,学生要
使用搜索引擎查询相关资源;在展示各小组的学习成果时,学生要 PPT 进行汇报;同时开展自主学习
和协同工作,并能在解决问题的过程中提出合理方法,提升数字化学习与创新的核心素养。