用Python写一款App Inventor网络微数据库服务器
作者:***
来源:《中国信息技术教育》2022年第01期
App Inventor是目前廣受中小学生喜爱的图形化移动应用开发软件,通过这款软件,用户可以快速地开发简易的移动应用程序。App Inventor的数据存储采用了多种方式,包括文本文件、TinyDB、TinyWebDB等,其中TinyWebDB属于网络微数据库,用户使用此数据库,可实现远程数据存储,从而实现开发网络版应用程序。
由于网络微数据库需要服务器的支持,一般的用户只能借助他人提供的远程服务器才可以使用这一功能,很不自由。在教学中,还常常因为远程服务器的连接限制而导致测试失败。因而,本文介绍一种基于Python的Flask框架开发App Inventor网络微数据库服务器的方法,让任何计算机都能“摇身”变为网络微数据库服务器,以满足个人开发和日常教学的需求。
● 开发网络微数据库服务器的技术分析
1.网络微数据库存储机制
App Inventor开发的应用程序,是通过TinyWebDB可以完成读取数据与存储数据的功能,其相关的数据结构比较简洁,每条记录只包含了tag(键)和value(值)两项。
在利用网络微数据库进行“读取数据”时,其实质是发送一条网页form表单请求,类似于“/get? tag=tagvalue”这样的一条请求语句,传送一个tag值,服务器捕获这个请求后,查询数据库中是否存在这个tagvalue值,假若存在,则将此值返回给APP。
而当利用网络微数据库进行“保存数据”时,其实质同样是发送一条网页form表单请求。
类似于“/get? stored=storedvalue”这样的一条请求语句,传送一个stored值,此stored值实际上是一个json格式的数组字符串,即["STORED", "tag","value"],以此告知服务器程序,需要保存的数据为:tag=“tag”,value=“value”。服务器捕获这个get请求后,将此数据作为一条记录存储进数据库。
2.网络微数据库服务器开发技术
由网络微数据库存储机制可知,服务器程序应提供两项服务,即数据读取与数据存储功能,其实质是一个典型的Web应用服务平台。因此,只需搭建一个能提供数据读取与数据存储功能的Web应用服务平台,并且在格式上进行规范,即可替代原有的网络微数据库服务器。
3.开发环境选择
程序主体采用目前广受用户喜爱的Python语言的Flask网页框架进行编写,数据库可以采用SQLite3模块进行构建。由于数据传输中需要进行json格式的转换,因此还需要导入json模块。
4.主要功能模块设计
网络微数据库服务器由数据库、服务器端等模块构成。
其中,数据库用于数据的存储,服务器端部分属于反馈系统的主逻辑,承载着响应APP请求,读取相应数据返回APP、捕获APP发送的数据并存储到数据库。
整体架构如上页图1所示。
● 网络微数据库服务器的开发
1.数据库设计
数据库主要用于APP数据的存储。对于最基本的服务,可以设计一个数据表,并在数据表中设计两个字段,分别为webtag与webvalue。本系统采用Python语言的SQLite3模块构建与操作数据库,其数据库结构设计如上页表所示。建立数据库的核心代码如图2所示。
2.网络微数据库服务器程序编写
服务器端程序采用Flask网页框架编写,主要包括以下两个主函数。
getvalue()函数:用于接收APP端读取数据请求,并返回json格式的目标数据。函数设计如图3所示。
storeavalue()函数:用于接收APP端存储数据请求,并将接收到的数据存储于数据库中。函数设计如图4所示。
● 网络微数据库服务器的部署与应用
能运行python的软件 1.启动服务器主程序
网络微数据库服务器编写完成之后,即可在服务器计算机中以命令行的方式运行主程序:python tinywebdb.py。假设服务器地址为“192.168.31.132:8080”。
2.编写APP,并设置网络微数据库服务器地址
设计示例APP的界面如下页图5所示,网络微数据库服务器地址设置如图6所示。
本示例APP只实现两个功能,即将文本框中输入的tag值与value值存入网络微数据库中;向服务器发送读取数据请求,并将相应tag值的返回值加以显示。其逻辑设计如图7所示。
3.调试
在APP编写完毕后,使用AI伴侣进行测试,结果如图8所示。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论